我手机上运行正常。但是,当我检查实时崩溃数据时,人们正在获得内存不足错误。
java.lang.OutOfMemoryError
我试图从照片中加载图像并尝试缩小图像。
这是我的代码
requiredSize是1000
public static Bitmap getImage(Context c, Uri uri, final int requiredSize)
throws FileNotFoundException {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(c.getContentResolver().openInputStream(uri), null, o);
int width_tmp = o.outWidth
, height_tmp = o.outHeight;
int scale = 1;
while(true) {
if(width_tmp / 2 < requiredSize || height_tmp / 2 < requiredSize)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(c.getContentResolver().openInputStream(uri), null, o2); //This is the line that's getting the error
}
答案 0 :(得分:0)
直接在imageview中加载高分辨率图像可能会导致UI滞后。为了避免这种情况,要进行任何类型的调整,我建议使用Picasso或Glide图像加载库,以便在图像加载时获得更好的性能。