首页 > 应用开发 > IT综合 > 直播系统Android端如何实现轮播
我们可以发现,在直播系统当中,轮播图是系统页面相当重要的一部分,,今天我们就来一起看一下直播系统的轮播效果是如何实现的。
- 可以手动左右滚动
- 可以自动轮播
- 自定义性强
首先想到的是使用ViewPager,ViewPager本身在处理页面左右滚动上已经很好了,在ViewPager的基础上加上Handler让他可以自动滚动。
遇到的问题
直播系统的图片不能循环滚动,到ViewPager的最后一个再往后不能滚动,在第一个再往前也是不行。
解决思路
在0位置上显示第count-1 的item,在count上显示第0个item,也就是需要额外再ViewPager的Adapter getCount()方法中增加 2,实现过程就变成滑动到0后就立即是viewPager.setCurrentItem(count-1),同样滑动到count 就使viewPager.setCurrentItem(0),也就通过这样无缝对接轮播。在nexus 6p上出现手动滑动卡顿问题
上面思路在大部分手机上都有很好的体验,但是在部分手机上会出现卡顿,出现卡顿的原因就是在viewPager.setCurrentItem(),那么我们可不可以避免呢,显然使用ViewPager是不能避免这种情况的,那么现在我们再想想我们原来只是增加了额外2个item,现在我增加100个呢,用户滑动到临界点的概率就大大降低了,我们就使用这种方式。
1. 首先看下
AutoLoopSwitchBaseView.java中布局了ViewPager,在这个View中我们定义一个Handler发送循环消息。在
LoopHandler中定义了三种消息类型
在
public void handleMessage(Message msg)中处理这三种消息
2.来看看
Adapter的实现,在前面讲到过大概的实现方式会在前后各增加一个,同时再增加当前 100 的倍数关系的数量 ,那么getCount()的数量也就会是实际数量*100+2
3. 数据和自动滚动的消息已经有了,同时前后增加的数据也增加了,那么是怎么实现直播系统循环播放的连接呢?
监听
ViewPager的OnPageChangeListener在public void onPageScrollStateChanged(int i)
以上就是直播系统如何实现轮播效果的全部内容了,感兴趣的朋友可以试一下。
声明:本文由云豹科技转发自goodbranch博客,如有侵权请联系作者删除
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2786051/ ,如需转载,请注明出处,否则将追究法律责任。