ViewPager较多应用于手势滑动View 的切换,而ViewFlipper可用于子界面的自动切换,只需设置切换时间和动画效果即可实现自动循环播放的功能。
一、为ViewFlipper加入View
(1)静态导入:在layout布局文件中直接导入(写死了,一般情况下不推荐使用)
<ViewFlipper
android:id="...">
<ImageView
android:scaleType="matrix"
.../>
<ImageView
android:scaleType="matrix"
.../>
<ImageView
android:scaleType="matrix"
.../>
</ViewFlipper>
<span style="font-size:18px;">flipper=(ViewFlipper)findViewById(R.id.flipper);
flipper.addView(getImageView(R.drawable.pic1));
flipper.addView(getImageView(R.drawable.pic2));
flipper.addView(getImageView(R.drawable.pic3));</span>
<pre name="code" class="java">private ImageView getImageView(int resId)
{
ImageView image=new ImageView(this);
image.setBackgroundResource(resId);//铺满整个屏幕
//image.setImageResource(resId);//会以图片大小展示
return image;
}
ViewFlipper常用方法
setInAnimation:设置View进入屏幕时候使用的动画 //动画的xml文件位于res/anim下
setOutAnimation:设置View退出屏幕时候使用的动画
showNext:调用该函数来显示ViewFlipper里面的下一个View
showPrevious:调用该函数来显示ViewFlipper里面的上一个View。
setFlipInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping:停止View切换
二、支持手势滑动的ViewFlipper
在MainActivity.java中重写public boolean onTouchEvent(MotionEvent event)函数
public boolean onTouchEvent(MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
{
startX=event.getX();
break;
}
case MotionEvent.ACTION_MOVE:
{
if(startX-event.getX()>100)//向左滑动大于100像素
{
//flipper.setInAmimation
//flipper.setOutAnimation
//flipper.showNext()
}
//event.getX() ;获取手指坐标
break;
}
case MotionEvent.ACTION_UP:
{
break;
}
}
}