本文给大家分享android使用 ViewPager循环广告位的实现,感兴趣的朋友一起学习吧
如何实现循环播放
现在网上实现循环播放都是在adapter的getCount()方法返回一个较大的值并且instantiateItem(ViewGroup container, int position)中通过取余(position/datas.size())的方式,让ViewPager不断的播放下去。
这里我们通过修改数据源和设置currentItem的方式实现。
修改数据源:
- final List<Integer> datas = new ArrayList<>(); //这里添加测试数据,实际项目中可以是从网络获取数据
- datas.add(R.mipmap.welcome_page_01); datas.add(R.mipmap.welcome_page_02);
- datas.add(R.mipmap.welcome_page_03); //处理数据源
- datas.add(0,datas.get(datas.size()-1)); datas.add(datas.get(1));
设置currentItem需要在OnPageChangeListener对象中进行:
- mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
- @Override public void onPageSelected(int position) {
- if(position==0){ mViewPager.setCurrentItem(datas.size()-2,false);
- }else if(position==datas.size()-1){ mViewPager.setCurrentItem(1,false);
- } }
- @Override public void onPageScrollStateChanged(int state) {
- } });










