感谢您早些时候的支持。 目前我正在开发一个项目,我需要调整从Server下载的图像的大小。图像具有较大的分辨率,因此我想根据设备的screenSize调整大小。以下是我的代码。请看看。
// decode image size initially
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
FileInputStream stream1 = new FileInputStream(f);
BitmapFactory.decodeStream(stream1, null, o);
stream1.close();
// Find the correct scale value.
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp / 2 < REQUIRED_SIZE
|| height_tmp / 2 < REQUIRED_SIZE)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
// decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
FileInputStream stream2 = new FileInputStream(f);
Bitmap bitmap = BitmapFactory.decodeStream(stream2, null, o2);
stream2.close();
但是一旦我得到了理想的比例,它会在三星Galaxy S3的情况下在代码的末尾找到一个空位图。它在仿真器,三星galaxy S4,Htc one v上工作正常。我也担心代码的泛化,所以它应该在每个设备上工作。
如果有人遇到过这样的问题,请告诉我。
答案 0 :(得分:0)
你的REQUIRED_SIZE值是多少?将它设置为1024.因为可能是因为解码大分辨率图像时出现内存不足异常。