ViewPager无限轮播加xml小圆点

来源:互联网 发布:h3c 端口镜像 编辑:程序博客网 时间:2024/04/29 22:11
  1. Handler handler = new Handler() {
  2.         public void handleMessage(android.os.Message msg) {
  3.             if (msg.what == 0) {
  4.                 int currentItem = viewPager.getCurrentItem();
  5.                 currentItem++;
  6.                 viewPager.setCurrentItem(currentItem);
  7.                 setmove();
  8.             }
  9.         };
  10.     };
  11. //添加集合
  12. imageViews_list = new ArrayList<ImageView>();
  13.         in_list = new ArrayList<Integer>();
  14.         in_list.add(R.drawable.bb1);
  15.         in_list.add(R.drawable.bb2);
  16.         in_list.add(R.drawable.bb3);
  17. //设置适配器
  18.         viewPager.setAdapter(new MyPagerAdapter3(this, in_list, handler));
  19. //设置小圆点
  20.         initview();
  21.         viewPager.setCurrentItem(10000);
  22.         viewPager.setOnPageChangeListener(new OnPageChangeListener() {
  23.             @Override
  24.             public void onPageSelected(int arg0) {
  25.                 for (int i = 0; i < imageViews_list.size(); i++) {
  26.                     if (arg0 % in_list.size() == i) {
  27.                         imageViews_list.get(i).setImageDrawable(
  28.                                 getResources().getDrawable(R.drawable.check));
  29.                     } else {
  30.                         imageViews_list.get(i).setImageDrawable(
  31.                                 getResources().getDrawable(R.drawable.no));
  32.                     }
  33.                 }
  34.             }
  35.             @Override
  36.             public void onPageScrolled(int arg0, float arg1, int arg2) {
  37.             }
  38.             @Override
  39.             public void onPageScrollStateChanged(int arg0) {
  40.             }
  41.         });
  42. //执行
  43. setmove();
  44. //设置小圆点的方法
  45. private void initview() {
  46.         imageViews_list = new ArrayList<ImageView>();
  47.         linearLayout.removeAllViews();
  48.         imageViews_list.clear();
  49.         for (int i = 0; i < in_list.size(); i++) {
  50.             ImageView imageView = new ImageView(this);
  51.             if (i == 0) {
  52.                 imageView.setImageDrawable(getResources().getDrawable(
  53.                         R.drawable.check));
  54.             } else {
  55.                 imageView.setImageDrawable(getResources().getDrawable(
  56.                         R.drawable.no));
  57.             }
  58.             LayoutParams layoutParams = new LayoutParams(20, 20);
  59.             layoutParams.setMargins(5, 0, 5, 0);
  60.             linearLayout.addView(imageView, layoutParams);
  61.             imageViews_list.add(imageView);
  62.         }
  63.     }
  64. //xml选中布局
  65. <?xml version="1.0" encoding="utf-8"?>
  66. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  67.     android:shape="rectangle" >
  68.     <corners android:radius="6dp" />
  69.     <solid android:color="#0ff" />
  70. </shape>
  71. //未选择
  72. <?xml version="1.0" encoding="utf-8"?>
  73. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  74.     android:shape="rectangle" >
  75.     <corners android:radius="6dp" />
  76.     <solid android:color="#fff" />
  77. </shape>
  78. //执行延迟轮播
  79. public void setmove() {
  80.         handler.sendEmptyMessageDelayed(0, 2000);
  81.  }
  82. //适配器里设置数据是list.get(position%list.size);
0 0
原创粉丝点击