我在使用Android代码中的图像时遇到以下错误。
08-20 11:47:59.902: E/AndroidRuntime(2268): java.lang.OutOfMemoryError
08-20 11:47:59.902: E/AndroidRuntime(2268): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-20 11:47:59.902: E/AndroidRuntime(2268): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:575)
08-20 11:47:59.902: E/AndroidRuntime(2268): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:410)
08-20 11:47:59.902: E/AndroidRuntime(2268): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)
但是我的图像文件大小为5 kb,格式为.png,我将图像从可绘制文件夹渲染到ImageView
。但是标准图标图像正在成功渲染。 P
这是图像视图代码
我使用的Android代码是imgView.setImageResource(imageId[position]);
答案 0 :(得分:0)
第一次尝试这个。在设置图像之前回收位图。
if(imgView!= null) {
((BitmapDrawable)imgView.getDrawable()).getBitmap().recycle();
imgView.setImageResource(imageId[position]);
}
如果这不起作用,那么这样做。手动调用垃圾收集器。虽然这是非常糟糕的做法。
imgView.setImageResource(imageId[position]);
System.gc();
但最佳做法是在显示图像之前调整图像大小