自定义小圆点

1.XMl

LinerLayout用来装小圆点

 
        
    

 二.java代码

1.创建方法 public void createPoint()

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

选中的背景shape



    
    

未选中的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) {

            }
        });

 

你可能感兴趣的:(自定义小圆点)