我遇到的问题是我的画廊中的图像比我需要的图像大得多。
我已经找到了在实际拉入它们之前减小尺寸的方法,但是我只是把它放在一起,因为我发现的大部分内容都与BitMap资源有关,而不是已经存在的BitMap画廊。
所以,基本上,我得到了这样的图像,
words.words()[1251]
但在我实际将它分配给我的BitMap var之前,我需要将其缩小到合理的手机大小。
任何有助于理解这里发生的事情的人都会受到赞赏。
答案 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
占用较少的堆空间。