Android 使用 ViewPager循环广告位的实现

2019-12-10 19:51:27于海丽

本文给大家分享android使用 ViewPager循环广告位的实现,感兴趣的朋友一起学习吧

如何实现循环播放

现在网上实现循环播放都是在adapter的getCount()方法返回一个较大的值并且instantiateItem(ViewGroup container, int position)中通过取余(position/datas.size())的方式,让ViewPager不断的播放下去。

这里我们通过修改数据源和设置currentItem的方式实现。

修改数据源:

 

 
  1. final List<Integer> datas = new ArrayList<>();  //这里添加测试数据,实际项目中可以是从网络获取数据 
  2. datas.add(R.mipmap.welcome_page_01);  datas.add(R.mipmap.welcome_page_02); 
  3. datas.add(R.mipmap.welcome_page_03);  //处理数据源 
  4. datas.add(0,datas.get(datas.size()-1));  datas.add(datas.get(1)); 

设置currentItem需要在OnPageChangeListener对象中进行:

 

 
  1. mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {  @Override 
  2. public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {  } 
  3. @Override  public void onPageSelected(int position) { 
  4. if(position==0){  mViewPager.setCurrentItem(datas.size()-2,false); 
  5. }else if(position==datas.size()-1){  mViewPager.setCurrentItem(1,false); 
  6. }  } 
  7. @Override  public void onPageScrollStateChanged(int state) { 
  8. }  });