作者:Ting.wong
笔者对原生Gallery的UI做了修改后,测试时出现了图库内容刷新偏慢的问题,主要体现有如下2个主要问题:
(1) 切换UI场景时容易闪烁;
(2) 进入照片列表缩略图时刷新慢;
针对如上问题,通过分析对比新旧图库版本的代码,终有一番所得,特将分析解决方法记录下,作为他人及自己的备忘。
(1)实现上出现了一些重复刷新UI的请求,故造成切换场景时UI的闪烁,笔者对所有代码中所有涉及UI切换的场景进行检查,同时对比原生Gallery,避免重复刷新情况的出现,场景包括:Gallery前后台切换,时间相册和文件夹相册的视角切换等。
(2)照片列表缩略图AlbumPage加载刷新慢,分析后了解主要由如下两方面引起:
Ø A. 为了照顾到一套代码的兼容性,图库中有增加不同功能的开关。此处当有某个开关打开情况下,在加载绘制照片时对MediaSet和MediaItem重复判断其是否处于特定(比如加密)状态,客观上造成了延迟,解决方式为:在启用某个开关时,MediaSet和MediaItem在第一次被访问时判断并记录其功能所需的特殊状态,直到再次执行该功能的操作时才更新此状态,避免重复判断更新,若未启用开关时,移除所有对特殊状态(比如加密)的判断逻辑。
Ø B. 原生图库应用为三列,在1080P分辨率的手机上图片列表最多可显示3X5=15张图片缩略图,我们自定义修改为四列之后,最多则可显示4X7=28张图片缩略图。这样,在生成每个刷新页面下的缩略图时,在两者尺寸相同的情况下,