小圆点的配置与设置

首先要有ViewPage 需要联动必须要做监听事件

  //viewPager页面改变的监听事件
 vp_one.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
     @Override
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }
     @Override
     public void onPageSelected(int position) {
         //如果选中了这一页,,,当前小圆点红色,,,否则绿色
      for (int i = 0;i<imagesList.size();i++){
           if (i== position%imagesList.size()){
                imagesList.get(i).setImageResource(R.drawable.doc_select);
            }else {
                imagesList.get(i).setImageResource(R.drawable.doc_select_no);
            }
        }
  }
     @Override
      public void onPageScrollStateChanged(int state) {
     }
});
 
 
初始化小圆点
  
private void initDoc() {
      //首先需要一个集合记录这些小圆点的图片,,,,当页面切换的时候,可以从集合中取出imageView进行显示图片的设置
     imagesList = new ArrayList<>();
    linearLayout.removeAllViews();//清空/移除所有的view
    for (int i = 0;i<list.size();i++){
          ImageView imageView = new ImageView(getActivity());
          if (i==0){//显示第一页,,,红的
             imageView.setImageResource(R.drawable.doc_select);
          }else {//绿的
             imageView.setImageResource(R.drawable.doc_select_no);
         }
         //添加到集合
         imagesList.add(imageView);
         //加入到线性布局中显示
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);

          params.setMargins(5,0,5,0);
          linearLayout.addView(imageView,params);

      }


 }
 一定要在Drawble里创建两个不同颜色的方法  名字自定义

这是第一个

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="#ff0000"/>

    <corners android:radius="5dp"/>

    <size android:height="10dp" android:width="10dp"/>

</shape>

这是第二个

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="#00ff00"/>

    <corners android:radius="5dp"/>

    <size android:height="10dp" android:width="10dp"/>

</shape>

小圆点的调用一定要在轮播图图片解析的地方调用,这样才能知道有多少张图片 下面是详解
//轮播图的解析
public void getBeanByGson() {
    // 使用该方法得到了一个 Json的字符输入流
    new AsyncTask<String, String, String>() {
        @Override
        protected String doInBackground(String... strings) {
            String reader = Util.getNetDataStr();
            return reader;
        }
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            // 使用Gson把该字符输入流转换成JavaBean
            Gson gson = new Gson();
            bn = gson.fromJson(s, bean.class);
            list = new ArrayList<ImageView>();
            for (int i = 0; i < bn.getData().getComics().size(); i++) {
                ImageView imageView = new ImageView(getActivity());
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                ImageLoader.getInstance().displayImage(bn.getData().getComics().get(i).getCover_image_url(), imageView);
                list.add(imageView);
            }

            //初始化小圆点
            initDoc();
            myPagerApdata = new MyPageApdata(list);
            vp_one.setAdapter(myPagerApdata);
            handler.sendEmptyMessageDelayed(3, 3000);
        }
    }.execute();
}

布局文件
<LinearLayout
    android:id="@+id/linear_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/vp_ma"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="20dp"
    android:orientation="horizontal">
</LinearLayout>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值