手机直播源码,当前页卡指示器的简单实现方法

发布时间 2023-10-13 14:07:13作者: 云豹科技-苏凌霄

手机直播源码,当前页卡指示器的简单实现方法

初始化的时候先初始化与list集合size相等的圆点个数:

 


 int size = mList.size();
        initPageIndicator(size);

然后是给ViewPager设置监听事件,并在onPageSelected方法中设置被选中的当前页圆点为选中状态:

 


 
 
 mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
 
            }
 
            @Override
            public void onPageSelected(int position) {
 
                System.out.println(position+"-----------");
                for (int i = 0; i < 4; i++) {
                    setIndicator(i, i == position);
                }
            }
 
            @Override
            public void onPageScrollStateChanged(int state) {
 
            }
        });

 

初始化指示点:

 


private void setIndicator(int i, boolean enabled) {
        View view = mIndicator.getChildAt(i);
        if (view != null) {
            view.setEnabled(enabled);
        }
    }
 
    private void initPageIndicator(int size) {
        if (size <= 1) {
            return;
        }
        for (int i = 0; i < size; i++) {
            addPageIndicator(i);
        }
 
        setIndicator(0, true);
    }
 
    private void addPageIndicator(int i) {
        View dot = new View(this);
        dot.setBackgroundResource(R.drawable.dot_bg_black_selector);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20);
        if (i != 0) {
            params.leftMargin = 40;
        }
        params.topMargin = 20;
        params.bottomMargin = 10;
        dot.setEnabled(false);
        dot.setLayoutParams(params);
        mIndicator.addView(dot);
    }
  

 

其中在初始化指示点的时候引用的drawable文件夹下的selector文件为:

 


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
    <item android:drawable="@android:drawable/alert_dark_frame" android:state_enabled="true"/>
    <item android:drawable="@android:drawable/alert_light_frame" android:state_enabled="false"/>
</selector> 

 

以上就是 手机直播源码,当前页卡指示器的简单实现方法,更多内容欢迎关注之后的文章