前言
虽然ViewSwitcher的中文API早已翻译出来,但一直没有在项目中使用过,也没有搜到很合适很简单的中文例子,这里与大家一起探讨和分享一下其用法。
相关API
Android 中文API (61) —— ViewSwitcher
正文
一、简介
ViewSwitcher适用于两个视图带动画效果的切换。这里实现两个视图切换的功能,并附带滑屏效果。
二、截图
视图一
视图二
![点击查看原始大小图片](http://dl.iteye.com/upload/attachment/555034/7b4133f7-6842-316a-8b89-deb8f6f1f505.png)
二、范例代码
带动画效果的切换视图一和视图二。
xml
<
ViewSwitcher
android:layout_alignParentBottom
="true"
android:persistentDrawingCache ="animation" android:id ="@+id/bottom"
android:layout_width ="match_parent" android:inAnimation ="@android:anim/slide_in_left"
android:outAnimation ="@android:anim/slide_out_right" android:layout_height ="122.0dip" >
< RelativeLayout android:layout_width ="fill_parent"
android:layout_gravity ="bottom" android:layout_marginBottom ="12.0dip"
android:id ="@+id/lyBottom" android:layout_height ="wrap_content" >
< Button android:id ="@+id/btn_pre" android:text ="上一步"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_centerVertical ="true" android:layout_toLeftOf ="@+id/btn_middle"
android:layout_marginRight ="150.0dip" />
< Button android:id ="@+id/btn_middle" android:layout_width ="wrap_content"
android:layout_centerInParent ="true" android:onClick ="onClick" android:visibility ="invisible"
android:textSize ="22.0sp"
android:layout_height ="wrap_content" ></ Button >
< Button android:id ="@+id/btn_next" android:text ="下一步"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_centerVertical ="true" android:layout_toRightOf ="@+id/btn_middle"
android:layout_marginLeft ="150.0dip" />
</ RelativeLayout >
< RelativeLayout android:layout_width ="fill_parent"
android:layout_gravity ="bottom" android:layout_height ="wrap_content"
android:orientation ="horizontal" >
< ImageView android:src ="@drawable/cube" android:id ="@+id/btn_reinsure"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_marginLeft ="150.0dip" ></ ImageView >
< ImageView android:src ="@drawable/cyddz" android:id ="@+id/btn_identity"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_toRightOf ="@+id/btn_reinsure"
android:layout_marginLeft ="124.0dip" ></ ImageView >
< ImageView android:src ="@drawable/cykvmce" android:id ="@+id/btn_insure_query"
android:layout_toRightOf ="@+id/btn_identity" android:layout_width ="wrap_content"
android:layout_height ="wrap_content" android:layout_marginLeft ="140.0dip" ></ ImageView >
< ImageView android:src ="@drawable/m8gprs" android:id ="@+id/btn_review"
android:layout_toRightOf ="@+id/btn_insure_query"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_marginLeft ="140.0dip" ></ ImageView >
< ImageView android:src ="@drawable/th_appshareth"
android:layout_toRightOf ="@+id/btn_review"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_marginLeft ="130.0dip" ></ ImageView >
</ RelativeLayout >
</ ViewSwitcher >
android:persistentDrawingCache ="animation" android:id ="@+id/bottom"
android:layout_width ="match_parent" android:inAnimation ="@android:anim/slide_in_left"
android:outAnimation ="@android:anim/slide_out_right" android:layout_height ="122.0dip" >
< RelativeLayout android:layout_width ="fill_parent"
android:layout_gravity ="bottom" android:layout_marginBottom ="12.0dip"
android:id ="@+id/lyBottom" android:layout_height ="wrap_content" >
< Button android:id ="@+id/btn_pre" android:text ="上一步"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_centerVertical ="true" android:layout_toLeftOf ="@+id/btn_middle"
android:layout_marginRight ="150.0dip" />
< Button android:id ="@+id/btn_middle" android:layout_width ="wrap_content"
android:layout_centerInParent ="true" android:onClick ="onClick" android:visibility ="invisible"
android:textSize ="22.0sp"
android:layout_height ="wrap_content" ></ Button >
< Button android:id ="@+id/btn_next" android:text ="下一步"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_centerVertical ="true" android:layout_toRightOf ="@+id/btn_middle"
android:layout_marginLeft ="150.0dip" />
</ RelativeLayout >
< RelativeLayout android:layout_width ="fill_parent"
android:layout_gravity ="bottom" android:layout_height ="wrap_content"
android:orientation ="horizontal" >
< ImageView android:src ="@drawable/cube" android:id ="@+id/btn_reinsure"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_marginLeft ="150.0dip" ></ ImageView >
< ImageView android:src ="@drawable/cyddz" android:id ="@+id/btn_identity"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_toRightOf ="@+id/btn_reinsure"
android:layout_marginLeft ="124.0dip" ></ ImageView >
< ImageView android:src ="@drawable/cykvmce" android:id ="@+id/btn_insure_query"
android:layout_toRightOf ="@+id/btn_identity" android:layout_width ="wrap_content"
android:layout_height ="wrap_content" android:layout_marginLeft ="140.0dip" ></ ImageView >
< ImageView android:src ="@drawable/m8gprs" android:id ="@+id/btn_review"
android:layout_toRightOf ="@+id/btn_insure_query"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_marginLeft ="140.0dip" ></ ImageView >
< ImageView android:src ="@drawable/th_appshareth"
android:layout_toRightOf ="@+id/btn_review"
android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:layout_marginLeft ="130.0dip" ></ ImageView >
</ RelativeLayout >
</ ViewSwitcher >
代码说明:
1. 这里使用系统自带的切换效果@android:anim/slide_in_left和@android:anim/slide_out_right。
2. 请大家自行准备测试图片
java
bottom
=
(ViewSwitcher) findViewById(R.id.bottom);
// 切换为第一个
bottom.setDisplayedChild( 0 );
// 切换到下一个
// bottom.showNext()
// 切换为第一个
bottom.setDisplayedChild( 0 );
// 切换到下一个
// bottom.showNext()