2014-07-24 172 views
-1

我正在开发一个应用程序,其中,有一个配置文件页面,用户可以通过相机或图库设置其图像。在android中缩小图像大小programetically

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

所以我决定在设置图像视图之前减小图像大小。

在这里,我发现了很多解决方案,但在所有它也减少了它的宽度和高度,但我不想减少它的宽度和高度。

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

所以请帮助我如何在android中实现这一点。

+1

检查这个环节,你可能需要改变图像格式,减少百分比http://stackoverflow.com/questions/23240432/take-and-save-picture-with-specified-size-大小in-kb-s/23240768#23240768 – Saqib

+0

[将内存加载到Bitmap对象时出现内存不足的问题](http://support.microsoft.com/kb/477572/strange-out-of-memory-issue -while-loading-an-image-to-a-bitmap-object) –

回答

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; 

} 
+0

我检查了这个,但是在这里我们需要传递大小“final int REQUIRED_SIZE = 70;”我不想要的,我想减少其百分比的大小 –