查找ID以调整图像大小(避免内存泄漏)

时间:2012-09-01 13:48:32

标签: android image resize

我的应用程序有一个按钮,允许用户从图库中选择一张照片并在ImageView中显示。问题是,如你所知,从相机拍摄的图像是巨大的,所以我想调整它们的大小。

我找到了这个我想尝试的方法:

int inSample = 4; 

opts = new BitmapFactory.Options();
opts.inSampleSize = inSample;

Bitmap b = BitmapFactory.decodeResource(c.getResources(), imgResId, opts);

问题是我只有拍摄的图像的URI,我不知道如何转换它或找到它的ID。

1 个答案:

答案 0 :(得分:1)

Uris - 如果ContentProvider支持 - 可用于打开InputStream,然后可用于解码Bitmap

所以它应该更像这样。

int inSample = 4;

opts = new BitmapFactory.Options();
opts.inSampleSize = inSample;
ContentResolver cr = getContentResolver();
Uri uri = getUri(); // whatever it is

// this will need some exception handling
Bitmap b = BitmapFactory.decodeStream(cr.openInputStream(uri), opts);