添加轮播图圆点

public class MainActivity extends AppCompatActivity {
    private PullToRefreshScrollView scrollView;
    private ViewPager viewPager;
    private ListView listView;
    private List<ImageView> imageViews = new ArrayList<>();
    private List<ImageView> points = new ArrayList<>();
    private List<BookBean.DataBean> bookList=new ArrayList<>();
    private  static  int page = 0;
    private MyAdapter myAdapter;
    private MyHandler myHandler=new MyHandler();
    private LinearLayout ll;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initViews();
        //请求网络
        getAdData();
        myAdapter = new MyAdapter(MainActivity.this, bookList);
        listView.setAdapter(myAdapter);
    }


    private void getAdData() {
        HttpUtils httpUtils = HttpUtils.getHttpUtils();
        httpUtils.get(HttpConifg.ad_url);
        httpUtils.setHttpListener(new HttpUtils.HttpListener() {


            private AdAdapter adAdapter;


            @Override
            public void getSuccess(String json) {
                Gson gson = new Gson();
                AdBean adBean = gson.fromJson(json, AdBean.class);
                //轮播图数据
                List<AdBean.DataBean> list = adBean.getData();
                //循环,加载图片---viewpager
                for (int i = 0; i < list.size(); i++) {
                    ImageView imageView = new ImageView(MainActivity.this);
                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    String icon = list.get(i).getIcon();
                    //
                    ImageLoader.getInstance().displayImage(icon, imageView, MyApp.getOptions());


                    imageViews.add(imageView);
                    //添加小圆点
                    ImageView point = new ImageView(MainActivity.this);
                    point.setImageResource(R.drawable.my_selector);


                    points.add(point);


                    ll.addView(point);
                }
                //默认第一个选中
                points.get(0).setSelected(true);
                //适配器
                adAdapter = new AdAdapter(imageViews);


                viewPager.setAdapter(adAdapter);
                //发送消息,开始轮播
                myHandler.sendEmptyMessageDelayed(0,2000);
                //请求书籍列表
                getBookList();
            }
        });
    }


    private void initViews() {
        ll = findViewById(R.id.ll);
        scrollView = findViewById(R.id.pull_to_refresh_scrollview);
        viewPager = findViewById(R.id.viewpager);
        listView = findViewById(R.id.listview);
        //


        scrollView.setMode(PullToRefreshBase.Mode.BOTH);
        scrollView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                page=1;
                getBookList();
            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                page++;
                getBookList();
            }
        });
    }


    public void getBookList() {
        HttpUtils httpUtils = HttpUtils.getHttpUtils();
        httpUtils.get(HttpConifg.books_url+"?page="+page);
        httpUtils.setHttpListener(new HttpUtils.HttpListener() {


            @Override
            public void getSuccess(String json) {
                Gson gson = new Gson();
                BookBean bookBean = gson.fromJson(json, BookBean.class);
                List<BookBean.DataBean> bookList1 = bookBean.getData();




                if (page==1){
                    bookList.clear();
                }


                bookList.addAll(bookList1);


                myAdapter.notifyDataSetChanged();


                scrollView.onRefreshComplete();
            }
        });
    }
    //使用Handler进行轮播
    class MyHandler extends Handler{
        @Override
        public void handleMessage(Message msg) {
            viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
            //切换小圆点
            for (int i = 0; i < points.size(); i++) {
                int j = viewPager.getCurrentItem();
                j= j%points.size();
                if (i==j){
                    points.get(i).setSelected(true);
                }else {
                    points.get(i).setSelected(false);
                }


            }
            myHandler.sendEmptyMessageDelayed(0,2000);
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        myHandler.removeCallbacksAndMessages(null);
    }
}

猜你喜欢

转载自blog.csdn.net/liu_qunfeng/article/details/80510078