自定义小圆点

1.XMl

LinerLayout用来装小圆点

 <android.support.v4.view.ViewPager
        android:id="@+id/homepager_ViewPager_jiu"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_150"
         />
        <LinearLayout
            android:id="@+id/homepager_ViewPager_jiu_point"
            android:layout_width="match_parent"
            android:layout_height="10dp"
            android:orientation="horizontal"
            android:layout_alignParentBottom="true"
            android:gravity="center_horizontal"
            />
    </RelativeLayout>

 二.java代码

1.创建方法 public void createPoint()

2.小圆点(new出来的ImageView)背景是自定义的shape,以下就是在 drawable中的shape,(小圆点就是Imageview设置了一个背景)

选中的背景shape

<?xml version="1.0" encoding="utf-8"?>
<shape
    android:shape="oval"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="@dimen/dp_1" android:color="@color/color3C3C3C"></stroke>
    <solid android:color="@color/color3C3C3C"></solid>
</shape>

未选中的shape

<?xml version="1.0" encoding="utf-8"?>
<shape
    android:shape="oval"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="@dimen/dp_1" android:color="@color/color3C3C3C"></stroke>
</shape>

3.一定要在创建小圆点之前把装小圆点的Linerlayout(layoutPoint.removeAllViews())删除。(否则重新调用生命周期的时候,会 出现越来越多的小圆点。因为他是不停的在创建而没有清除)

 //小圆点
    private void createPoint(int postion) {
        layoutPoint.removeAllViews();
        for (int a=0;a<2;a++){
            ImageView imageView=new ImageView(context);
            if(postion==a){
                    //展示变色的
                imageView.setBackgroundResource(R.drawable.pointone);
            }else{
                imageView.setBackgroundResource(R.drawable.pointtwo);
            }
            //添加到装小圆点的linerlayout
            layoutPoint.addView(imageView);
            
            //设置小圆点的宽高
            LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) imageView.getLayoutParams();
            params.width=10;
            params.height=10;
            params.leftMargin=10;
            imageView.setLayoutParams(params);
        }
    }

三.与ViewPager联动只需要在ViewPager的onPagerSelected方法中调用上面写的方法就可以了

//ViewPager与小圆点联动
        homepager_viewPager_jiu.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                createPoint(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

猜你喜欢

转载自blog.csdn.net/qq_42234894/article/details/83720400