首先要有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>