使用图像时出错

时间:2014-08-20 17:32:54

标签: android

我在使用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]);

1 个答案:

答案 0 :(得分:0)

第一次尝试这个。在设置图像之前回收位图。

if(imgView!= null) {
    ((BitmapDrawable)imgView.getDrawable()).getBitmap().recycle();
     imgView.setImageResource(imageId[position]);
}

如果这不起作用,那么这样做。手动调用垃圾收集器。虽然这是非常糟糕的做法。

imgView.setImageResource(imageId[position]);
System.gc();

但最佳做法是在显示图像之前调整图像大小