ViewPager页面指示器简单实现
2016-03-05 10:51
435 查看
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>
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>
相关文章推荐
- Spring MVC测试
- Android学习笔记----数据持久存储
- JDK7与JDK8的新特性
- PatchMatch分析
- Python实现Linux命令xxd -i功能
- Linq入门
- Java遍历二维数组,求和
- ubuntu下载编译android5.0
- eclipse反编译jar
- CentOS下Yum安装Mysql和JDK和tomcat
- 一些有意思,有深度,容易错的代码收集
- How to install pam_mysql in CentOS or Red Hat
- Cocos2d-x中的字符串
- JMS相关
- VBS 从指定 DNS 获取给定域名(Domain)的 IP 地址
- 腾讯实习生笔试题20160305
- 基于python快速实现排列组合算法
- [精]Odoo 8.0深入浅出开发教程(一) 目录
- 实现table切换
- ABAP 承运路单