বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি স্কেলড ইমেজ ডিকোড করা

সীমিত আকারের মেমরীতে বহুমুখি ইমেজ ব্যবস্পনা জটিল হতে পারে। আপনি যদি দেখেন যে আপনার অ্যাপলিকেশন অল্প কিছু ছবি দেখিয়েই মেমরী শেষ করে ফেলে, আপনি নাটকীয়ভাবে একটি মেমরী বিন্যাসের মধ্যে বর্ধিত করার দ্বারা ব্যবহৃত ডায়নামিক হিপ গুলো কমিয়ে ফেলতে পারেন যা ইতিমধ্যে গন্তব্য ভিউ এর সাইজের সাথে ম্যাচ করানোর জন্য মাপা হয়েছে। নিম্নোক্ত উদাহরণ মেথড এই কৌশল দেখায়।

private void setPic() {
    // Get the dimensions of the View
    int targetW = mImageView.getWidth();
    int targetH = mImageView.getHeight();

    // Get the dimensions of the bitmap
    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    bmOptions.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
    int photoW = bmOptions.outWidth;
    int photoH = bmOptions.outHeight;

    // Determine how much to scale down the image
    int scaleFactor = Math.min(photoW/targetW, photoH/targetH);

    // Decode the image file into a Bitmap sized to fill the View
    bmOptions.inJustDecodeBounds = false;
    bmOptions.inSampleSize = scaleFactor;
    bmOptions.inPurgeable = true;

    Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
    mImageView.setImageBitmap(bitmap);
}