我有一个来自mediastore的URI指向图像。我想用这个URI设置壁纸。我尝试使用BitmapFactory.decodeFile,但问题是它的内存是否耗尽。
我还有其他办法吗?
感谢
答案 0 :(得分:1)
这个问题有点老了,但嘿嘿......
您可以使用以下代码解决此问题。但是,如果您将图像设置得非常小,然后将其拉伸以适应非常大的图像,那么您将会失去质量。话虽这么说,如果图像太大,你甚至无法加载它,你只是想让它充当你的壁纸,我想你会好起来的。
// use if resizing the image
BitmapFactory.Options options = new BitmapFactory.Options();
// set to true to set image bounds
options.inJustDecodeBounds = true;
// set to 2, 4, 6, etc to create a progressively smaller image
options.inSampleSize = 2;
// set to false to prepare image for decoding
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeStream(is, null, options);