2015-05-14 90 views
0

我有一个图像的URI,我想加载到imageView中。从特定尺寸的URI加载图像保留长宽比

Uri imageUri = /* URI goes here */ 
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 
Imageview iv = (Imageview) findViewById (R.id.my_img_view); 
iv.setImageBitmap(bitmap); 

在它的图像加载的全分辨率(大到21万像素造成内存溢出异常)。我的应用程序并不需要利用全分辨率的图像,所以我想将图像按比例缩小这样的方式,使得满足以下条件:

  1. 如果图像高度大于宽度(即纵向),然后将宽度缩放到1024像素,并将高度缩放到适当的值以保持宽高比。

  2. 如果图像宽度大于高度(即风景),则将高度缩放到1024像素,然后将宽度缩放到合适的值以保持宽高比。

  3. 如果图像是方形的,它扩展到1024×1024

有没有什么办法让我可以把它应用到ImageView的(甚至更好Media.getBitmap之前)之前缩放位图?

回答

0

试试这个库: https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations

该库涵盖了诸如缩放,旋转几乎所有的位图操作,cropping..etc

+0

@BuggyCoder - 如果这个答案去,你可能想看看在这个问题:http://stackoverflow.com/questions/18250951/jni-bitmap-operations-for-helping-to-avoid-oom-when-using-large-images – HaemEternal

+0

嗯,我真的必须使用第三方用于调整图像大小等基本任务的库?有时我想知道为什么android的基本功能如此复杂: -/ – BuggyCoder

+1

我在这里找到了一些解决方案。 http://stackoverflow.com/questions/4837715/how-to-resize-a-bitmap-in-android – BuggyCoder