2015-05-14 72 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