ViewFlipper是ViewAnimator的子类,在ViewAnimator子类下,还有一个ViewSwitcher,这个ViewSwitcher又有两个子类:TextSwitcher和ImageSwitcher。不过今天还是说说ViewFlipper。
?
这个控件可以实现屏幕上下、左右的切换效果,而且可以加上动画特效,当然你可以点击就可以切换了,而用手指划屏其实还是点击操作(只针对这个控件)。该控件每次只能显示一屏
?
公共方法
public bool isAutoStart ()
如果视图显示到窗口上时会自动调用startFlipping()方法,则返回true
?
public bool isFlipping()
如果子视图正在切换,则返回true
?
public bool setAutoStart (bool autoStart)
设置视图显示到窗口上时是否会自动调用startFlipping()方法
?
public bool setFlipInterval (int milliseconds)
视图间切换的时间间隔
参数
??????????????????? milliseconds ?? 毫秒数
?
public bool startFlipping ()
开始在子视图间定时循环切换
?
public bool stopFlipping ()
停止切换
?
下面实现一个小例子来看看这个控件到底是怎么用的
main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><ViewFlipper android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/viewFipper01"> <include android:id="@+id/layout1" layout="@layout/layout1"/> <include android:id="@+id/layout2" layout="@layout/layout2"/></ViewFlipper></LinearLayout>
?这里用到了include标签,学过java web的同学很容易理解,这和jsp页面里的include没啥区别。使用include我们可以把一个大的布局文件拆成多个小的文件,使用include,我们可以复用一些常用布局组合
layout1.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_height="wrap_content" android:layout_width="fill_parent" android:src="@drawable/ni_png_0120" /> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center" android:text="乌贼" android:textSize="20pt" /></LinearLayout>
?layout2.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_height="wrap_content" android:layout_width="fill_parent" android:src="@drawable/ni_png_0115" /> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center" android:text="鱼" android:textSize="20pt"> </TextView></LinearLayout>
?ViewTestActivity.java
package com.view.ViewFlippertest;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.AnimationUtils;import android.widget.ViewFlipper;public class ViewTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ViewFlipper vf = (ViewFlipper)findViewById(R.id.viewFipper01); vf.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //点击所在区域即可滑动到下一屏幕 vf.showNext(); } }); //动画切入,从左边进入 vf.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_in_left)); //动画切出,从右边离开 vf.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_out_right)); }}?
运行效果如下:
?
?
公共方法说明参考:http://www.cnblogs.com/over140/archive/2010/12/06/1897439.html