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,进行载入
思路如此,源代码在上面的网页中可以找到,希望我的思路可以提供一些帮助
推荐阅读
- 010-Android开发解决控件超出屏幕,不能正常显示的问题
- 五指APP和用户中心源码含数据库
- 关于Android移植项目
- APP测试-内存分析
- SpringBoot 项目不加载 application.properties 配置文件
- [android]com.android.support:appcompat-v7:XXX包导入无法Build
- Android 如何通过代码绘制小票单据
- Deepin Linux下安装安卓应用的各种方式
- Android_侧滑菜单的实现