以编程方式减少Android中的图像大小

时间:2014-07-24 04:55:41

标签: android image imageview android-drawable

我正在开发一个应用程序,其中有一个个人资料页面,用户可以通过相机或图库设置其图像。

现在当用户设置大图像然后我的应用程序停止不幸时,我发现原因是,我们无法在图像上设置图像视图超出一定的大小。

所以我决定在图像视图上设置之前缩小图像尺寸。

在这里我发现了许多解决方案,但总的来说它也减少了它的宽度和高度,但我不想减小它的宽度和高度。

我只想减少百分比。 E.x从1 mb到100 kb。

如何在Android中实现这一目标?

1 个答案:

答案 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;

}