文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么进行Bitmap资源优化

2023-06-04 23:10

关注

这篇文章将为大家详细讲解有关怎么进行Bitmap资源优化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

优化原因

即 为什么要优化图片Bitmap资源,具体如下图:

怎么进行Bitmap资源优化


优化方向

本文将从 以下方面优化图片Bitmap资源的使用 & 内存管理:

怎么进行Bitmap资源优化


具体优化方案

下面,我将详细讲解每个优化方向的具体优化方案

怎么进行Bitmap资源优化

下面,我将详细讲解上述各个方案。

1 使用完毕后 释放图片资源

优化原因:使用完毕后若不释放图片资源,容易造成内存泄露,从而导致内存溢出

优化方案:

a. 在 Android2.3.3(API 10)前,调用 Bitmap.recycle()方法

b. 在 Android2.3.3(API 10)后,采用软引用(SoftReference)

具体描述:在 Android2.3.3(API 10)前、后,Bitmap对象 & 其像素数据 的存储位置不同,从而导致释放图片资源的方式不同,具体如下图:

怎么进行Bitmap资源优化

注:若调用了Bitmap.recycle()后,再绘制Bitmap,则会出现Canvas: trying to use a recycled bitmap错误。

2 根据分辨率适配 & 缩放图片

优化原因:若 Bitmap 与 当前设备的分辨率不匹配,则会拉伸Bitmap,而Bitmap分辨率增加后,所占用的内存也会相应增加,主要因为Bitmap 的内存占用 根据 x、y的大小来增加的。

优化方案:

怎么进行Bitmap资源优化

3 按需 选择合适的解码方式

优化原因:不同的图片解码方式 对应的 内存占用大小 相差很大,具体如下

怎么进行Bitmap资源优化

特别注意:

位图位数越高,代表其可存储的颜色信息越多,图像越逼真

一般情况下,使用ARGB_8888,其最占内存 = 1个像素占4字节

示例:若有1张480x800的图片,格式 = ARGB_8888,将会占用1500KB的内存

优化方案:根据需求 选择合适的解码方式,需注意的是:

使用参数:BitmapFactory.inPreferredConfig 设置

默认使用解码方式:ARGB_8888

4 设置 图片缓存

优化原因:重复加载图片资源耗费太多资源(CPU、内存 & 流量)

优化方案

怎么进行Bitmap资源优化

关于“怎么进行Bitmap资源优化”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯