SORU
29 Ocak 2011, CUMARTESİ


Nasıl Android bir Bitmap yeniden Boyutlandırmak için?

Bir bitmap uzak veritabanı, (encodedImage dize Base64 ile görüntüsüdür): Base64 Dize almış

profileImage = (ImageView)findViewById(R.id.profileImage);

byte[] imageAsBytes=null;
try {
    imageAsBytes = Base64.decode(encodedImage.getBytes());
} catch (IOException e) {e.printStackTrace();}

profileImage.setImageBitmap(
    BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);

profileİmage benim İmageView

Tamam, ama benim bunu göstermek için önce bu resmi yeniden boyutlandırmak için benim düzeni ImageView. 120x120 boyutlandırmak için var.

Biri bana yeniden boyutlandırmak için kod söyleyebilir misiniz?

Bulduğum örnekler base64 dize bit eşlem elde etmek için uygulanamadı.

CEVAP
22 Mayıs 2012, Salı


public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
    int width = bm.getWidth();
    int height = bm.getHeight();
    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;
    // CREATE A MATRIX FOR THE MANIPULATION
    Matrix matrix = new Matrix();
    // RESIZE THE BIT MAP
    matrix.postScale(scaleWidth, scaleHeight);

    // "RECREATE" THE NEW BITMAP
    Bitmap resizedBitmap = Bitmap.createBitmap(
        bm, 0, 0, width, height, matrix, false);
    bm.recycle();
    return resizedBitmap;
}

@Tarafından aveschini önerdiği gibi, bellek sızıntıları bm.recycle(); ekledim. EDİT: Lütfen başka amaçlar için önceki nesneyi kullanıyorsanız durumda, o zaman ona göre işlemek unutmayın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJPixcell

    DJPixcell

    20 NİSAN 2007
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • Official Clouds

    Official Clo

    1 HAZİRAN 2011