আমি সমস্যা আছে BitmapFactory.decodeStream(inputStream)
। বিকল্পগুলি ছাড়াই এটি ব্যবহার করার সময়, এটি একটি চিত্র ফিরে আসবে। আমি যখন বিকল্পগুলির সাথে এটি ব্যবহার করি তখন .decodeStream(inputStream, null, options)
এটি কখনই বিটম্যাপগুলি দেয় না।
আমি যা করার চেষ্টা করছি তা হ'ল মেমরিটি সংরক্ষণ করতে আসলে এটি লোড করার আগে বিটম্যাপটি ডাউনসাম্পল করা। আমি কিছু ভাল গাইড পড়েছি, কিন্তু কেউই ব্যবহার করছে না .decodeStream
।
জাস্ট জরিমানা কাজ
URL url = new URL(sUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream is = connection.getInputStream();
Bitmap img = BitmapFactory.decodeStream(is, null, options);
কাজ করবেন না
InputStream is = connection.getInputStream();
Bitmap img = BitmapFactory.decodeStream(is, null, options);
InputStream is = connection.getInputStream();
Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(is, null, options);
Boolean scaleByHeight = Math.abs(options.outHeight - TARGET_HEIGHT) >= Math.abs(options.outWidth - TARGET_WIDTH);
if (options.outHeight * options.outWidth * 2 >= 200*100*2){
// Load, scaling to smallest power of 2 that'll get it <= desired dimensions
double sampleSize = scaleByHeight
? options.outHeight / TARGET_HEIGHT
: options.outWidth / TARGET_WIDTH;
options.inSampleSize =
(int)Math.pow(2d, Math.floor(
Math.log(sampleSize)/Math.log(2d)));
}
// Do the actual decoding
options.inJustDecodeBounds = false;
Bitmap img = BitmapFactory.decodeStream(is, null, options);