我在磁盘上有一张尺寸为2560 x 1920的照片。这通常太大而无法加载到内存中,因此我尝试使用BitmapFactory.Options.inSampleSize来节省内存。来自文档:
inSampleSize:如果设置为值> 1,请求解码器对原始图像进行二次采样,返回较小的图像以节省存储空间。
这就是我使用它的方式:
BitmapFactory.Options optsDownSample = new BitmapFactory.Options();
optsDownSample.inSampleSize = 3;
Bitmap bmp = BitmapFactory.decodeFile(path, optsDownSample);
但应用程序有时仍会在最后一行崩溃,而从logcat我可以看到它正在尝试分配〜5mb,我怀疑这是因为下采样并没有真正得到尊重。
其他人都知道这里会发生什么,我是否错误地使用了inSampleSize?
由于
答案 0 :(得分:0)
我也在努力了解如何使用BitmapFactory.Options
,基于我阅读过的所有文档我相信您错过了Android Developers网站上显示的optsDownSample.inJustDecodeBounds = false;
祝你好运!