private ViewPager banner;
private List<String> uris;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int currentItem = banner.getCurrentItem();
currentItem++;
banner.setCurrentItem(currentItem);
handler.sendEmptyMessageDelayed(0,2000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pl);
//初始化控件
banner = findViewById(R.id.banner);
//创建轮播
createBunner();
//自动轮播
starBanner();
//点击时暂停自动轮播
banner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://点下
stopBanner();
break;
case MotionEvent.ACTION_UP://抬起
starBanner();
break;
}
return false;
}
});
}
private void starBanner() {
handler.sendEmptyMessageDelayed(0,2000);
}
private void stopBanner() {
handler.removeCallbacksAndMessages(null);
}
/**
* 创建轮播
*/
private void createBunner() {
//创建集合,图像域集合
uris = new ArrayList<>();//获取路径的集合,添加路径
uris.add("http://img.zcool.cn/community/01a39159664ee9a8012193a33f10ca.jpg");
uris.add("http://img02.tooopen.com/images/20150503/tooopen_sy_121395177313.jpg");
uris.add("http://img.zcool.cn/community/01b97f5955bd37a8012193a34ea9d9.jpg@1280w_1l_2o_100sh.jpg");
//设置适配器,将路径传到适配器,在适配器中用imageloader加载图片
MyBunnerAdapter ad = new MyBunnerAdapter(PlActivity.this, uris);
banner.setAdapter(ad);
}
适配器中 MyBunnerAdapter
public class MyBunnerAdapter extends PagerAdapter {
private Context context;//上下文
private List<String> list;//地址集合
public MyBunnerAdapter(Context context, List<String> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView = new ImageView(context);//创建图像域
imageView.setScaleType(ImageView.ScaleType.FIT_XY);//设置图像域适应屏幕
ImageLoader.getInstance().displayImage(list.get(position % list.size()), imageView);//添加图片到图像域
container.addView(imageView);//将图片添加到父控件
return imageView;//返回
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}