ViewFlipper类是ViewAnimator类的一个简单的实现子类,其功能是切换添加到其中的两个或多个view对象。同一时刻只会显示其中的一个view。如果需要,也可以把它设置成,按着一定规律间隔自动在每个子对象中跳转。
ViewFlipper的基本方法:
boolean
|
Returns true if this view automatically calls
startFlipping() when it becomes attached to a window.
如果当ViewFlipper添加到窗口时,它会自动调用startFlipping()方法,则返回true。
|
boolean
|
Returns true if the child views are flipping.
如果子视图正在切换(
flipping)则返回true
|
void
|
Initializes an
AccessibilityEvent with information about this View which is the event source.
不明白
|
void
|
Initializes an
AccessibilityNodeInfo with information about this view.
不明白
|
void
|
setAutoStart(boolean autoStart)
Set if this view automatically calls
startFlipping() when it becomes attached to a window.
设置
当ViewFlipper添加到窗口时,是否会自动调用startFlipping()方法
|
void
|
setFlipInterval(int milliseconds)
How long to wait before flipping to the next view
切换到下一视图的时间间隔(单位ms)
|
void
|
Start a timer to cycle through child views
启动一个定时器来循环播放子视图
|
void
|
No more flips
停止切换
|
还有从它的父类ViewAnimator继承的一些方法,常用的有:
setInAnimation(Context context, int resId):设置进入动画
setOutAnimation(Context context, int resId):设置移出动画
showPrevious(); 显示ViewFlipper中的前一个view对象
showNext():显示ViewFlipper中的下一个view对象。1.静态使用ViewFlipper : 在xml中直接设置有关属性(2)三个动态加载的示意布局:layout_view1,layout_view2,layout_view3在xml中常需设置的属性主要有:android:autoStart="true" 是否自动播放 android:flipInterval="2000" 间隔时间 android:inAnimation="@android:anim/slide_in_left" 进入动画 android:outAnimation="@android:anim/slide_out_right" 移出动画2.动态使用ViewFlipper :(1)xml中添加一个ViewFlipper控件,再在程序中用代码处理即可。实现代码如下:
- <ViewFlipper
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/flip">
- </ViewFlipper>
(3)代码实现addViews(); //把view添加到ViewFlipper中 viewFlipper.setFlipInterval(2000);//设置间隔时间 viewFlipper.setInAnimation(this, android.support.v7.appcompat.R.anim.abc_slide_in_top);//使用系统再带的进入动画 viewFlipper.setOutAnimation(this, android.support.v7.appcompat.R.anim.abc_slide_out_bottom);//使用系统再带的滑出动画 viewFlipper.startFlipping();//把view添加到ViewFlipper中 public void addViews(){ View v1 = getLayoutInflater().inflate(R.layout.layout_view1,null); View v2 = getLayoutInflater().inflate(R.layout.layout_view2,null); View v3 = getLayoutInflater().inflate(R.layout.layout_view3,null); viewFlipper.addView(v1); viewFlipper.addView(v2); viewFlipper.addView(v3); }3. 同样,还可以实现手指滑动跳转。内容基本差不多,不同就是多了一个触摸监听,来判断是左滑还是右滑。