ViewFlipper继承于ViewAnimator,android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。
该类有如下几个和动画相关的函数:
l setInAnimation:设置
View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为 Context对象和定义Animation的resourceID。
- setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
- showNext:调用该函数来显示FrameLayout里面的下一个View。
- showPrevious:调用该函数来显示FrameLayout里面的上一个View。
一般不直接使用
ViewAnimator而是使用它的两个子类ViewFlipper和ViewSwitcher。
ViewFlipper可以用来指定FrameLayout内多个View之间的切换效果,可以一次指定也可以每次切换的时候都指定单独的效果。该类额外提供了如下几个函数:
XML属性:
ViewFlipper可以用来指定FrameLayout内多个View之间的切换效果,可以一次指定也可以每次切换的时候都指定单独的效果。该类额外提供了如下几个函数:
XML属性:
属性名称 |
描述 |
android:autoStart |
当设为true时,自动启动动画。此时必须是一个布尔值,属性值为true或false (对应于全局资源属性R.attr.autoStart) |
android:flipInterval |
显示下一个视图的时间间隔 |
- isAutoStart 如果视图显示到窗口上时会自动调用startFlipping()方法,则返回true
- isFlipping:用来判断View切换是否正在进行
- setAutoStart 设置视图显示到窗口上时是否会自动调用startFlipping()方法
- setFilpInterval:设置View之间切换的时间间隔
- startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
- stopFlipping: 停止View切换
ViewFlipper示例:
记住, ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。在示例中定义一个 ViewFlipper,里面包含三个ViewGroup作为示例的三个屏幕,每个ViewGroup中包含一个按钮和一张图片,点击按钮则显示下一个屏 幕。代码如下(res\layout\main.xml):
记住, ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。在示例中定义一个 ViewFlipper,里面包含三个ViewGroup作为示例的三个屏幕,每个ViewGroup中包含一个按钮和一张图片,点击按钮则显示下一个屏 幕。代码如下(res\layout\main.xml):
- <?xml
"1.0"version= "utf-8"?>encoding= - <LinearLayout
-
"http://schemas.android.com/apk/res/android"xmlns:android= -
"vertical"android:orientation= -
"fill_parent"android:layout_width= -
"fill_parent">android:layout_height= -
"@+id/details"<ViewFlipper android:id= -
"fill_parent"android:layout_width= -
"fill_parent"android:layout_height= -
"animation"android:persistentDrawingCache= -
"1000"android:flipInterval= -
"@anim/push_left_in"android:inAnimation= -
android:outAnimation="@anim/push_left_out" -
<LinearLayout -
"vertical"android:orientation= -
"fill_parent"android:layout_width= -
"fill_parent">android:layout_height= -
<Button -
android:text=