我的家庭布局中有 2 个ImageView
,它们的内容来自放置在 SD 卡上的图像,如下面的代码片段所示:
try {
String tempPath1 = Environment.getExternalStorageDirectory()
+ File.separator + "Clipping_Pictures" + File.separator
+ "06-05-2013_02-06-09pm.png";
File f = new File(tempPath1);
Bitmap b = null, b2 = null;
b = BitmapFactory.decodeFile(f.getPath());
if (f.exists()) {
ivClip1.setImageBitmap(b);//ivClip1 is ImageView
}
tempPath1 = Environment.getExternalStorageDirectory()
+ File.separator + "Clipping_Pictures" + File.separator
+ "06-05-2013_02-06-33pm.png";
f = new File(tempPath1);
b2 = BitmapFactory.decodeFile(f.getPath());
if (f.exists()) {
ivClip2.setImageBitmap(b2);
}
} catch (Exception e) {
e.printStackTrace();
}
当我第一次加载应用程序时,它会在各自的图像视图上显示这两个图像。但是第二次启动后,应用程序崩溃并出现以下异常:
OutOfMemoryError:位图大小超出 VM 预算
请注意,两个资源图像是.png,每个大小约为 850kb,我猜应该没问题。
SO和互联网上有类似的线程,我尝试了他们建议的一些解决方案,但似乎没有一个有效。
任何帮助表示赞赏。