İle ilgili sorunlar yaşıyorum BitmapFactory.decodeStream(inputStream)
. Seçenek olmadan kullanıldığında, bir görüntü döndürür. Ama onu seçeneklerle kullandığımda .decodeStream(inputStream, null, options)
asla Bitmapler döndürmüyor.
Yapmaya çalıştığım şey, bellekten tasarruf etmek için aslında yüklemeden önce bir Bitmap'i altörneklemek. Bazı iyi rehberler okudum ama hiçbiri kullanmıyor .decodeStream
.
SADECE GÜZEL İŞLER
URL url = new URL(sUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream is = connection.getInputStream();
Bitmap img = BitmapFactory.decodeStream(is, null, options);
ÇALIŞMIYOR
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);