我想在我的應用程序中加載一個圖像大小爲495KB。如果我加載的圖像比堆大小從25MB增加到35MB,這在我的應用程序中導致真正的內存問題。如果我不加載這個圖像比堆大小保持在25MB。任何人都可以告訴它爲什麼要佔用這麼大的堆大小?android 495KB圖像佔用10MB堆大小
圖片下面,我使用加載圖像
守則
InputStream s4 = getResources().openRawResource(R.drawable.parallax_layer4);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
System.gc();
if(bitmap4 != null) {
bitmap4.recycle();
}
s3 = null;
System.gc();
bitmap4 = bitmap(s4);
layer4Back = new ImageView(this);
layer4Back.setImageBitmap(bitmap4);
layer4Back.setScaleType(ScaleType.FIT_XY);
parallaxLayout.addView(layer4Back, 3, lp);
try {
s4.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
s4 = null;
System.gc();
private static Bitmap bitmap(final InputStream is) {
Bitmap bitmap = null;
System.gc();
Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
options.inSampleSize = 1;
try {
// bitmap = BitmapFactory.decodeStream(is);
bitmap = BitmapFactory.decodeStream(is, null, options);
} catch (Error e) {
// TODO: handle exception
e.printStackTrace();
}
return bitmap;
}
感謝 阿亞茲阿拉維
如何從該文件夾而不是從drawable-hdpi中選擇圖像? – 2012-07-06 07:24:29
我從hdpi文件夾中刪除文件並將其放入nodpi文件夾中。儘管堆大小減小,但圖像加載不正確。 – 2012-07-06 07:44:40
哦,我假設你把它放在'可繪製的 – Tim 2012-07-06 16:48:33