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) {
}
});