这几天对GitHub上开源的一个ViewPager控件感兴趣,自己试图写一个相同功能的Viewpager控件,在模拟器上运行发现页面切换的速度GitHub上的控件比自己写的明显流畅得多,对此疑惑。在多次比较功能代码无所发现后,考虑到是不是从那个开源项目中拷贝过来的资源文件问题。为什么省功夫,我把本来放在drawable-xhdpi文件夹下的图片资源直接复制到drawable下,当我将资源文件重新移到drawable-xhdpi文件夹下时,发现页面切换速度和前者比差不多了。
对此,我做了几次实验,将图片资源放入在xxxhdpi文件夹时,切换速度也是差不多,但图片放在hdpi分辨率以下时,切换就会出现卡顿。
在开发过程中,一直对分辨率的事情不怎么关注,只要屏幕上适配就行了。这次发现如果资源文件在分辨率上的处理不恰当,对性能的影响还是相当大的。安卓应用在将资源文件放置在没有分辨率的文件夹和相对较低分辨率的文件夹时,会对图片尺寸进行缩放处理,容易造成不必要的性能损失。至于在放置在更高分辨率情况下对性能是不是没有多大影响的情况还有待深究。现在的结论是,资源文件最好能够对应相应的分辨率,或者保证高分辨率文件夹下放置了资源文件。