ViewPager轮播图:

首先在build中添加依赖:

implementation 'com.android.support:design:28.0.0'

xml布局:

//ViewPager
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="180dp">
    </android.support.v4.view.ViewPager>
 //圆点显示 (图片自定)
 <LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="68dp">

        <ImageView
            android:id="@+id/img_a"
            android:layout_width="69dp"
            android:layout_height="match_parent"
            android:src="@mipmap/a"/>
        <ImageView
            android:id="@+id/img_b"
            android:layout_width="69dp"
            android:layout_height="match_parent"
            android:src="@mipmap/b"/>
        <ImageView
            android:id="@+id/img_c"
            android:layout_width="69dp"
            android:layout_height="match_parent"
            android:src="@mipmap/c"/>
        <ImageView
            android:id="@+id/img_d"
            android:layout_width="69dp"
            android:layout_height="match_parent"
            android:src="@mipmap/d"/>
        <ImageView
            android:id="@+id/img_e"
            android:layout_width="69dp"
            android:layout_height="match_parent"
            android:src="@mipmap/e"/>
        <ImageView
            android:id="@+id/img_f"
            android:layout_width="69dp"
            android:layout_height="match_parent"
            android:src="@mipmap/f"/>

    </LinearLayout>

MainActivity:

   //pager组件
    private ViewPager pager;
    //数据源
    private List<ImageView> list=new ArrayList<>();

        //初始化控件
        pager=findViewById(R.id.pager);
        //图片资源
        ImageView imageView_a = new ImageView(this);
        imageView_a.setImageResource(R.mipmap.a);
        list.add(imageView_a);

        ImageView imageView_b = new ImageView(this);
        imageView_b.setImageResource(R.mipmap.b);
        list.add(imageView_b);

        ImageView imageView_c = new ImageView(this);
        imageView_c.setImageResource(R.mipmap.c);
        list.add(imageView_c);

        ImageView imageView_d = new ImageView(this);
        imageView_d.setImageResource(R.mipmap.d);
        list.add(imageView_d);

        ImageView imageView_e = new ImageView(this);
        imageView_e.setImageResource(R.mipmap.e);
        list.add(imageView_e);

        ImageView imageView_f = new ImageView(this);
        imageView_f.setImageResource(R.mipmap.f);
        list.add(imageView_f);
        
         //圆点数据源
        private List<ImageView>list_yuan=new ArrayList<>();
        
        //圆点的添加和初始化
        list_yuan.add((ImageView) findViewById(R.id.img_a));
        list_yuan.add((ImageView) findViewById(R.id.img_b));
        list_yuan.add((ImageView) findViewById(R.id.img_c));
        list_yuan.add((ImageView) findViewById(R.id.img_d));
        list_yuan.add((ImageView) findViewById(R.id.img_e));
        list_yuan.add((ImageView) findViewById(R.id.img_f));
        //状态的监听
        pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            //当页面滑动的时候调用
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }
            //当页面被选择的时候
            @Override
            public void onPageSelected(int i) {
                for (int j=0;j<list_yuan.size();j++){
                    //设置未选择状态
                    list_yuan.get(j).setImageResource(R.mipmap.a);
                }
                //选择 状态 的 改变
                list_yuan.get(i).setImageResource(R.mipmap.ic_launcher_round);
            }
            //当页面滑动状态改变的时候
            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
       //Handler 消息的发送和接收
        private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            //判断标记
            if(msg.what==101){
                //设置到下一页
                pager.setCurrentItem(count++);
            }
        }
    };


       //自动轮播
        final Timer timer = new Timer();
        //开启定时器
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                //判断是否为最后一张图片
                if (count!=list_yuan.size()){
                    handler.sendEmptyMessage(101);
                }else{
                    //为最后一张,关闭计时器
//                    timer.cancel();
                    count=0;
                }
            }
        },0,1000);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值