[发明专利]一种优化Android图片加载效率的方法在审
申请号: | 202210063617.2 | 申请日: | 2022-01-20 |
公开(公告)号: | CN114416258A | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 李金国;韩轶西;喻雅倩;雷媛媛;徐明银 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F9/50 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 吴中伟 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 优化 android 图片 加载 效率 方法 | ||
本发明涉及图像处理技术领域,其公开了一种优化Android图片加载效率的方法,用于解决列表中切换图片容易出现短暂黑屏的问题,并避免现有的解决方案采用图片预加载的方法存在的额外内存消耗、预加载范围之外不生效等问题。本发明通过在列表切换图片的切换时机,通知下一张图片提前进行解码动作,并给此图片解码动作设定一个监听器,在解码动作完成后通知列表进行真正的切换动作。同时,在切换动作发生时,发出一个短暂延时的切换指令,在延时时间到达后若图片解码仍未完成,则强制进行图片切换动作,保证不影响用户体验,从而达到尽可能降低出现图片加载黑屏的概率,并避免一般的预加载方法存在额外内存消耗、预加载范围之外不生效等问题。
技术领域
本发明涉及图像处理技术领域,具体涉及一种优化Android图片加载效率的方法。
背景技术
在Android应用中,图片显示是需要将图片解码为Bitmap对象之后,再通过ImageView等载体进行呈现的。而Bitmap作为对图片像素信息保存的一个载体,需要对图片的每一个像素点信息进行保存,因此Bitmap对象非常占用内存。对于一个列表的图片展示,通常无法直接将所有图片全部解码进行呈现,这非常容易导致内存溢出,只能在对列表中图片进行切换时,再动态解码图片进行呈现,因此在列表滚动切换过程中,进行图片的动态解码时,就会出现短暂黑屏加载的状况。
通常一般的方法是在图片解码过程中,先给ImageView载体设置一个默认的显示,但其本质还是“黑屏”,在图片解码完成后,会出现图片加载的过程。
目前,行业内解决此类问题的方法是进行图片预加载,在显示当前图片时,对当前图片相邻一个或多个的图片进行预加载,达到在下一次切换后立即显示图片的效果;但此方案存在两个问题:一、对图片进行预加载会消耗额外的内存空间,二、对于未能处于预加载范围内的图片仍然有加载黑屏过程。
发明内容
本发明所要解决的技术问题是:提出一种优化Android图片加载效率的方法,用于解决列表中切换图片容易出现短暂黑屏的问题,并避免现有的解决方案采用图片预加载的方法存在的额外内存消耗、预加载范围之外不生效等问题。
本发明解决上述技术问题采用的技术方案是:
一种优化Android图片加载效率的方法,包括:
在列表中切换图片前,先通知下一张图片进行解码,同时给该解码任务设置一个监听器,在图片解码完成后,通过设置的监听器回调给列表再执行图片切换动作。
作为进一步优化,该方法还包括:
在通知下一张图片进行解码的同时,发送一个延时切换指令,在延时时间到达后,若下一张图片解码仍未完成,也立即执行图片切换动作。
作为进一步优化,所述在列表中切换图片前,先通知下一张图片进行解码,具体包括:
在列表中图片切换动作发生时,通过列表中的当前图片的位置计算得到下一张应该解码的图片位置,并通知该图片调用解码库进行图片解码。
作为进一步优化,所述延时时间通过本地固定或云端下发的方式提供。
作为进一步优化,所述延时切换指令的发送形式包括但不限于Handler消息队列、子线程等。
作为进一步优化,该方法还包括:延时时间到达后,若图片已解码完成并进行了切换,则忽略本次延时切换指令。
作为进一步优化,所述图片解码为切换动作发生后的实时解码,不进行图片预加载。
作为进一步优化,该方法还包括:在图片切换动作完成后,对上一张图片进行回收,保证仅当前图片占用内存。
本发明的有益效果是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210063617.2/2.html,转载请声明来源钻瓜专利网。