手机直播源码,当前页卡指示器的简单实现方法
初始化的时候先初始化与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>
以上就是 手机直播源码,当前页卡指示器的简单实现方法,更多内容欢迎关注之后的文章