20-2-4 安卓软件中加载较大图片导致crash(Failed to allocate a xxx byte allocation with xxxfree bytes)的问题

少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述20-2-4 安卓软件中加载较大图片导致crash(Failed to allocate a xxx byte allocation with xxxfree bytes)的问题相关的知识,希望能为你提供帮助。
在调用图片加载到imageview时,有一张图片点击后闪退,猜测是图片大小问题,
通过查询安卓程序员开发手册,在
https://developer.android.com/topic/performance/graphics/load-bitmap.html?hl=zh_cn#java中找到了相应的解决方案— — 即不通过设置

android:largeHeap="true"

来让设备成功显示过大的图片。
分三步走:
【20-2-4 安卓软件中加载较大图片导致crash(Failed to allocate a xxx byte allocation with xxxfree bytes)的问题】(1)计算原图片从原像素到我所需的最高像素所要缩小的倍数
(2)利用option进行解码,先不分配内存(options.inJustDecodeBounds = true),只获取它的像素值,然后进行缩小
(3)分配内存,将缩小的倍数加入option,进行载入
思路如此,源代码在上面的网页中可以找到,希望我的思路可以提供一些帮助

    推荐阅读