SORU
2 AĞUSTOS 2011, Salı


Bit Eşlem Android Kırpma Merkezi

Kare veya dikdörtgen olan bit eşlem var. Ben en kısa tarafını ve böyle bir şey yapmak:

int value = 0;
if (bitmap.getHeight() <= bitmap.getWidth()) {
    value = bitmap.getHeight();
} else {
    value = bitmap.getWidth();
}

Bitmap finalBitmap = null;
finalBitmap = Bitmap.createBitmap(bitmap, 0, 0, value, value);

O zaman ben de x 144 Bitmap 144 bu kullanarak ölçek:

Bitmap lastBitmap = null;
lastBitmap = Bitmap.createScaledBitmap(finalBitmap, 144, 144, true);

Sorun orijinal bitmap sol üst köşede bitkileri, Herkes bit eşlem merkezi Ürün Kodu var mı?

CEVAP
18 Temmuz 2013, PERŞEMBE


Yukarıdaki cevapların çoğu bunu yapmak için bir yol sağlarken, zaten yerleşik bunu yapmanın bir yolu var ve 1 satır kodu (ThumbnailUtils.extractThumbnail())

int dimension = getSquareCropDimensionForBitmap(bitmap);
bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension);

...

//I added this method because people keep asking how 
//to calculate the dimensions of the bitmap...see comments below
public int getSquareCropDimensionForBitmap(Bitmap bitmap)
{
    //If the bitmap is wider than it is tall
    //use the height as the square crop dimension
    if (bitmap.getWidth() >= bitmap.getHeight())
    {
        dimension = bitmap.getHeight();
    }
    //If the bitmap is taller than it is wide
    //use the width as the square crop dimension
    else
    {
        dimension = bitmap.getWidth();
    } 
}

Eğer bitmap nesnesi geri dönüşümlü olmak istiyorsanız, öyle yapın o seçenekleri geçirebilirsiniz:

bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

Kimden: ThumbnailUtils Documentation

public static Bitmap extractThumbnail (bit Eşlem kaynak, int genişlik, int yükseklik)

API seviyesi 8 katma Oluşturur istenilen merkezli bir bit eşlem.

Kaynak parametreleri özgün bit eşlem kaynak hedeflenen genişlik yükseklik hedeflenmiş

Kabul cevabı kullanırken bellek hataları bazen alıyordum, ve kullanarak ThumbnailUtils benim için bu sorunlar çözüldü. ARTI, bu çok daha temiz ve yeniden kullanılabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Attempts at least

    Attempts at

    1 Ocak 2007
  • Miles Fisher

    Miles Fisher

    8 NİSAN 2009
  • Semantic Mastery

    Semantic Mas

    30 EKİM 2013