一.先写个适配器
1 public class MyPagerAdapter extends PagerAdapter { 2 /** 3 * 上下文 4 */ 5 private Context context; 6 /** 7 * 传入的数据 8 */ 9 private String[] datas; 10 11 public MyPagerAdapter(Context context, String[] datas) { 12 this.context = context; 13 this.datas = datas; 14 } 15 16 @Override 17 public int getCount() { 18 //此处返回最大数 19 return Integer.MAX_VALUE; 20 } 21 22 @Override 23 public boolean isViewFromObject(View view, Object object) { 24 return view == object; 25 } 26 27 @Override 28 public Object instantiateItem(ViewGroup container, int position) { 29 //position会随着时间不断的增大 所以这里取position与上datas.length的模 30 int i = position % datas.length; 31 //SmartImageView是github上的一个开源图片加载框架 32 SmartImageView smartImageView = new SmartImageView(context); 33 smartImageView.setScaleType(ImageView.ScaleType.FIT_XY); 34 smartImageView.setImageUrl(datas[i], null); 35 container.addView(smartImageView); 36 37 return smartImageView; 38 } 39 40 @Override 41 public void destroyItem(ViewGroup container, int position, Object object) { 42 container.removeView((View) object); 43 } 44 }
依赖开源框架
compile 'com.github.snowdream.android:smartimageview:0.0.2'
接下来是activity中的代码了
1 private ViewPager viewPager; 2 private MyPagerAdapter pagerAdapter; 3 private Handler handler = new Handler();
1 /** 2 * view pager轮播任务类 3 */ 4 class BannerTask implements Runnable { 5 public void start() { 6 //postDelayed方法的第一个参数就是实现一个Runnable 7 //因为当前类已经实现了Runnable接口所以这里传入this,每隔5秒跟新一次 8 handler.postDelayed(this, 5000); 9 } 10 11 @Override 12 public void run() { 13 //获取当前item 14 int currentItem = viewPager.getCurrentItem(); 15 //当前item加一,展示下一个item 16 currentItem++; 17 viewPager.setCurrentItem(currentItem); 18 handler.postDelayed(this, 5000); 19 } 20 }
1 //设置适配器 2 viewPager.setAdapter(pagerAdapter); 3 //创建轮播任务对象 4 BannerTask task = new BannerTask(); 5 //开始轮播 6 task.start();
不懂的地方请留言