BitmapFactory.decodeStream(inputStream)
ผมมีปัญหาเกี่ยวกับ เมื่อใช้งานโดยไม่มีตัวเลือกจะส่งคืนรูปภาพ แต่เมื่อฉันใช้กับตัวเลือกเช่นเดียวกับ.decodeStream(inputStream, null, options)
มันจะไม่ส่งคืน Bitmaps
สิ่งที่ฉันกำลังพยายามทำคือการย่อขนาดบิตแมปก่อนที่ฉันจะโหลดจริงเพื่อบันทึกหน่วยความจำ ฉันได้อ่านคำแนะนำที่ดีบางอย่าง .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);