ViewPager页面指示器简单实现

ViewPager的页面指示器可以通过设置imageview的visibility属性来实现指示器和页面的联动,java代码如下:

viewPager.setOnPageChangeListener(new OnPageChangeListener() {


@Override
public void onPageSelected(int arg0) {
// 改变三个小圆点
ImageView indicator1 = (ImageView) listheaderIcons.findViewById(R.id.iv_header_list_home_indicator_1);
ImageView indicator2 = (ImageView) listheaderIcons.findViewById(R.id.iv_header_list_home_indicator_2);
ImageView indicator3 = (ImageView) listheaderIcons.findViewById(R.id.iv_header_list_home_indicator_3);
indicator1.setImageResource(R.drawable.banner_dot);
indicator2.setImageResource(R.drawable.banner_dot);
indicator3.setImageResource(R.drawable.banner_dot);
// arg0%3让下标永远在0,1,2中变化
switch (arg0%3) {
case 0:
indicator1.setImageResource(R.drawable.banner_dot_pressed);
break;
case 1:
indicator2.setImageResource(R.drawable.banner_dot_pressed);
break;
case 2:
indicator3.setImageResource(R.drawable.banner_dot_pressed);
break;
}
//ViewPager的一次滑动完成,把处理上下动作的处理权还给ListView
listView.requestDisallowInterceptTouchEvent(false);
}


@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// ViewPager的滑动开始,希望ListView不要处理滑动过程中可能出现的上下小动作
listView.requestDisallowInterceptTouchEvent(true);
}


@Override
public void onPageScrollStateChanged(int arg0) {


}
});


xml代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:background="#ffffffff"
    android:orientation="horizontal" >


    <android.support.v4.view.ViewPager
        android:id="@+id/vp_header_list_home_icon_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="3dp" 
        android:layout_centerHorizontal="true"
        >


        <ImageView
            android:id="@+id/iv_header_list_home_indicator_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:src="@drawable/banner_dot_pressed" />


        <ImageView
            android:id="@+id/iv_header_list_home_indicator_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:src="@drawable/banner_dot" />


        <ImageView
            android:id="@+id/iv_header_list_home_indicator_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:src="@drawable/banner_dot" />
    </LinearLayout>


</RelativeLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值