2013-03-11 9 views
5

sto ottenendo qualche immagine dalla mia cartella Assets, e ho questa eccezione:Fuori di memoria su uno stanziamento 9.830.416 byte con bitmap

03-11 10:18:28.019: E/dalvikvm-heap(4052): Out of memory on a 9830416-byte allocation. 

ho questo errore qui:

//stream to get photo 
InputStream bitmap=null;       
bitmap=getResources().getAssets().open("ProduitsMini/"+productList.get(rang).getImg_mini()); 
Bitmap bit=BitmapFactory.decodeStream(bitmap); 

// get drawable image 
Drawable mDrawable = new BitmapDrawable(getResources(),bit); 

È strano perché non ho questo errore su ogni dispositivo, ma solo con Galaxy S3.

+0

Beh, la S3 ha una risoluzione xhdpi, e dal momento che Android fa carico densità-dipendente potrebbe essere legata a quella. D'altra parte, non sembra che tu usi quella caratteristica nel modo in cui stai caricando l'immagine. – Aert

risposta

9

si può provare l'aggiunta di codice sotto

InputStream bitmap=null; 
bitmap=getResources().getAssets().open("ProduitsMini/"+productList.get(rang).getImg_mini()); 

BitmapFactory.Options options=new BitmapFactory.Options(); 
options.inSampleSize = 8; 
Bitmap preview_bitmap = BitmapFactory.decodeStream(bitmap,null,options); 

Questa opzione inSampleSize riduce il consumo di memoria.

si può fare riferimento al collegamento sotto

https://stackoverflow.com/a/823966/1441666

+0

Grazie per il tuo, sta funzionando ora. – theMouk

+0

c'è un modo per svuotare l'heap? –

Problemi correlati