Ho problemi con BitmapFactory.decodeStream(inputStream)
. Quando lo si utilizza senza opzioni, restituirà un'immagine. Ma quando lo uso con le opzioni come in .decodeStream(inputStream, null, options)
non restituisce mai le bitmap.BitmapFactory.decodeStream restituisce null quando le opzioni sono impostate
Quello che sto cercando di fare è di ridimensionare un bitmap prima di caricarlo effettivamente per risparmiare memoria. Ho letto alcune buone guide, ma nessuna utilizza .decodeStream
.
funziona bene
URL url = new URL(sUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream is = connection.getInputStream();
Bitmap img = BitmapFactory.decodeStream(is, null, options);
non funziona
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);
Qual è l'output dall'istruzione System.out.println ("Samplesize:" ...)? Sta indicando che options.inSampleSize è un valore accettabile? –
Sì, restituisce un valore accettabile ogni volta. –
Rimossa l'istruzione a causa del suo debug. –