20-2-4 安卓软件中加载较大图片导致crash(Failed to allocate a xxx byte allo

时间:2022-03-02 15:43:33

在调用图片加载到imageview时,有一张图片点击后闪退,猜测是图片大小问题,

通过查询安卓程序员开发手册,在

https://developer.android.com/topic/performance/graphics/load-bitmap.html?hl=zh_cn#java中找到了相应的解决方案——即不通过设置

android:largeHeap="true"

来让设备成功显示过大的图片。

分三步走:

(1)计算原图片从原像素到我所需的最高像素所要缩小的倍数

(2)利用option进行解码,先不分配内存(options.inJustDecodeBounds = true),只获取它的像素值,然后进行缩小

(3)分配内存,将缩小的倍数加入option,进行载入

思路如此,源代码在上面的网页中可以找到,希望我的思路可以提供一些帮助