ViewFlipper的使用---自动播放(轮播图)的实现以及多个view进行切换

来源:互联网 发布:2016大数据概念股龙头 编辑:程序博客网 时间:2024/05/16 01:55

一、 ViewFlipper的简介 

java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout
android.widget.ViewAnimator
android.widget.ViewFlipper

一个View的容器类,继承于ViewAnimator类,可以根据手势滑动进行页面的切换(即多个view进行切换),也可以设定时间间隔使其自动播放(即轮播图)。

SimpleViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If requested, can automatically flip between each child at a regular interval.

意思就是说ViewFlipper中可以添加两个或多个view并在它们之间进行切换。在每个时刻只能展示其中一个view。如果有需要的话,可以设定一定的时间间隔使它们自动播放。

二、常用的一些方法

addView(view)添加view

removeView(view)删除view

setInAnimation(Context context, int resourceID)设置进入时的动画

setOutAnimation(Context context, int resourceID)     设置滑出时的动画

showNext()展示下一个view

showPrevious()展示上一个view

getDisplayedChild()得到当前正在展示的view的索引值,范围是0 -- n-1

getChildAt(index)得到index处的view

getChildCount()得到总view数,即多少个页面

setFlipInterval(int milliseconds) 设置自动播放时的时间间隔

setAutoStart(false)设置是否为自动播放

isFlipping()  Returns true if the child views are flipping 如果子view正在滑动返回true

startFlipping()  Start a timer to cycle through child views   开始进行切换

stopFlipping()  No more flips  停止切换

三、 多个view进行切换的实现

3.1  xml布局

activity_main.xml

view_flipper.xml

3.2 主要代码

3.3 用到的动画,在res文件夹下面新建anim文件夹,然后分别创建slide_left_in.xml,slide_left_out.xml,slide_right_in.xml,slide_right_out.xml,用来实现划入划出时的动画效果

slide_left_in.xml,

slide_left_out.xml,

slide_right_in.xml,

slide_right_out.xml,

位置2为主屏幕所在的位置,3为左边的view的位置,1为右边的view的位置。3者都以左上角的坐标为准。2的坐标为0。3的坐标为-100%p。1的坐标为100%p。

3.4 主要代码解释

/**
* OnTouchListener接口中的方法
* 当触摸屏幕时,首先调用的是OnTouchListener中的onTouch方法
* 为了直接调用手势识别器中的onTouchEvent方法,
* 此处返回detector的onTouchEvent的返回值
*/
@Override
public boolean onTouch(View v, MotionEvent event) {
return detector.onTouchEvent(event);
}


四、 轮播图的实现

将上面项目中的MainActivity.java代码中添加两行代码即可实现自动轮播

flipper.setFlipInterval(3000);//设置自动播放的时间间隔为3S
flipper.setAutoStart(true);//设置自动播放


五、 项目链接

ViewFlipper的三个小例子

0 0
原创粉丝点击