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