मैं मुद्दों के साथ कर रहा हूँ 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);