Android从图库中选择一个图像并在我拉入之前调整它的大小

时间:2016-08-18 22:07:09

标签: android android-gallery android-bitmap

我遇到的问题是我的画廊中的图像比我需要的图像大得多。

我已经找到了在实际拉入它们之前减小尺寸的方法,但是我只是把它放在一起,因为我发现的大部分内容都与BitMap资源有关,而不是已经存在的BitMap画廊。

所以,基本上,我得到了这样的图像,

words.words()[1251]

但在我实际将它分配给我的BitMap var之前,我需要将其缩小到合理的手机大小。

任何有助于理解这里发生的事情的人都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

getBitmap()是一种弱便利方法。它的主体是四行代码:

public static final Bitmap getBitmap(ContentResolver cr, Uri url)
        throws FileNotFoundException, IOException {
    InputStream input = cr.openInputStream(url);
    Bitmap bitmap = BitmapFactory.decodeStream(input);
    input.close();
    return bitmap;
}

这就是为什么我不打扰人们教它。

恕我直言,最好的解决方案是让您使用many image-loading libraries available for Android之一,例如Picasso。大多数好的都可以从Uri加载并在操作过程中处理调整大小,在后台线程上进行繁重的工作。

如果出于某种原因,您希望自己完成所有工作,请使用BitmapFactory.decodeStream()对象调用BitmapFactory.Options。特别是,设置inSampleSize表示您希望在读取图像时重新采样图像,因此最终使用较小的Bitmap占用较少的堆空间。