一个页面 使用viewpager 做左右滑动界面展示 在大屏手机 上有很明显的滑动卡顿,只有一条数据的时候也是一样,一般手机没有问题
使用ViewPager会卡顿的话,跟手机机型没关系,可以肯定的是跟你的布局或者你布局里的控件有关,可以细致的排查下,1、先从图片入手,加入你的viewPager里有加载图片,那就要看你的图片有没有做压缩或者缓存处理,没有的话,每次都从本地decode,是肯定会卡顿的2、布局,布局方面是否复杂,可以看下每个item的布局层级,尽量做到精简,减少measure和layout的时间
0.获取当前设备像素密度值,我的是480dpi
1.获取图片文件宽高,当前是720x1280
2.上述宽高值单位为dp, 转换成px单位,根据公式 px = dp * (dpi /160) = dp * (480/160) = dp * 3, 以px为单位的宽高为 2160 x 3840
3.根据文件存放目录drawable(等同drawable-mdpi),得到对应倍数为1,将上述宽高除以倍数得到最终大小 2160 x 3840
分类目录 ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi
密度(dpi) ~160 ~240 ~320 ~480 ~640
图片比例 1.5 2 3 4 6 8
倍数 0.75x 1x 1.5x 2x 3x 4x
滑动过程中,每个view都要处理 2160 x 3840 大小的图片,当然容易发生卡顿了,而且显示的质量也不好!
当前设备像素密度为480dpi,要把图片放在drawable-xhdpi下,则倍数为2,图片最终显示大小为 1080x1920,没有发生卡顿,且画质也很好。
当然为了适配更多设备,需要把这几张图片分别放在各个资源目录下,这样就可以在不同设备上正常运行这个程序。
多谢上面回答,,我的viewpager 中只有三个textview 一样会卡