ViewPager自动轮播,自定义小圆点的改变

package test.bwie.com.zhuoye;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

import adapters.GvAdapter;
import adapters.VpAdapter;
import bean.ResultBean;
import utils.MyTask;

public class MainActivity extends AppCompatActivity {

    private ViewPager vp;
    private List<ResultBean.DataBean.EssayBean> essay;
    private int index = 0;
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            index++;
            //设置当前显示图片
            vp.setCurrentItem(index);
            //更新小圆点
            setSelectedPoint(index % essay.size());
            //延时发送消息
            handler.sendEmptyMessageDelayed(1, 2000);

        }
    };
    private GridView gv;
    private ArrayList<ImageView> images;
    private LinearLayout linear_point;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        vp = (ViewPager) findViewById(R.id.vp);
        gv = (GridView) findViewById(R.id.grid_view);
        //显示小圆点的布局控件
        linear_point = (LinearLayout) findViewById(R.id.linear_point);


        MyTask myTask = new MyTask(new MyTask.Icallbacks() {

            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson = new Gson();
                ResultBean resultBean = gson.fromJson(jsonstr, ResultBean.class);
                ResultBean.DataBean data = resultBean.getData();
                essay = data.getEssay();
                vp.setAdapter(new VpAdapter(essay, MainActivity.this));

                vp.setCurrentItem(0);
                gv.setAdapter(new GvAdapter(essay, MainActivity.this));
                //初始化小圆点
                initDoc();
            }
        });

        myTask.execute("http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android");

        handler.sendEmptyMessageDelayed(1, 2000);


    }

    /**
     * 改变小圆点图片
     *
     * @param index 页面的下标
     */
    public void setSelectedPoint(int index) {
        for (int i = 0; i < images.size(); i++) {
            if (i == index) {
                images.get(i).setImageResource(R.drawable.point_selected);
            } else {
                images.get(i).setImageResource(R.drawable.point_un_selected);
            }
        }
    }
//初始化小圆点
    private void initDoc() {
        images = new ArrayList<>();

        for (int i = 0; i < essay.size(); i++) {
            ImageView imgPoint = new ImageView(this);
            //设置图片的缩放模式
            imgPoint.setScaleType(ImageView.ScaleType.FIT_XY);
            //设置要显示的图片
            if (i == 0) {
                //红色的点
                imgPoint.setImageResource(R.drawable.point_selected);
            } else {
                imgPoint.setImageResource(R.drawable.point_un_selected);
            }

            //设置宽度与高度
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(40, 40);
            params.setMargins(10, 0, 10, 0);
            //添加到底部容器中
            linear_point.addView(imgPoint, params);
            //添加到集合中
            images.add(imgPoint);

        }

    }
}

自定义两个xml文件,表示选中和未选中的状态,,drawable目录下两个相同的XML文件,改变颜色进行区分

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#f00"></solid>
</shape>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值