从URI加载特定维度的图像,保留纵横比

时间:2015-05-14 10:18:02

标签: android

我有一个图像的URI,我试图加载到imageView中。

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); 

图像加载的是全分辨率(大到2100万像素,导致内存不足)。我的应用程序不需要使用全分辨率图像,因此我希望图像按比例缩小,以便满足以下条件:

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

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

  3. 如果图像是方形,请将其缩放为1024x1024

  4. 有什么办法可以在将位图应用到imageView之前对其进行缩放(或者在Media.getBitmap之前更好)?

1 个答案:

答案 0 :(得分:0)

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

这个库几乎涵盖了所有位图操作,如缩放,旋转,裁剪等等。