我正在开发一个应用程序,其中有一个个人资料页面,用户可以通过相机或图库设置其图像。
现在当用户设置大图像然后我的应用程序停止不幸时,我发现原因是,我们无法在图像上设置图像视图超出一定的大小。
所以我决定在图像视图上设置之前缩小图像尺寸。
在这里我发现了许多解决方案,但总的来说它也减少了它的宽度和高度,但我不想减小它的宽度和高度。
我只想减少百分比。 E.x从1 mb到100 kb。
如何在Android中实现这一目标?
答案 0 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
public Bitmap decodeFile(String path) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, o);
// The new size we want to scale to
final int REQUIRED_SIZE = 70;
// Find the correct scale value. It should be the power of 2.
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_SIZE && o.outHeight / scale / 2 >= REQUIRED_SIZE)
scale *= 2;
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeFile(path, o2);
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}