有一些场景,我们需要向用户展示一系列的页面。比如我们正在开发一个看漫画的应用,可能就需要向用户展示一张一张的漫画图片,用户使用手指滑动屏幕,可以在前一幅漫画和后一幅漫画之间切换。这个时候ViewFlipper就是一个很好的选择。
1)View切换的控件—ViewFlipper介绍
ViewFilpper类继承于ViewAnimator类。而ViewAnimator类继承于FrameLayout。
查看ViewAnimator类的源码可以看出此类的作用主要是为其中的View切换提供动画效果。该类有如下几个和动画相关的方法。
setInAnimation:设置View进入屏幕时候使用的动画。该方法有两个重载方法,即可以直接传入Animation对象,也可以传入定义的Animation文件的resourceID。
setOutAnimation:设置View退出屏幕时候使用的动画。使用方法和setInAnimation方法一样。
showNext:调用该方法可以显示FrameLayout里面的下一个View。
showPrevious:调用该方法可以来显示FrameLayout里面的上一个View。
查看ViewFlipper的源码可以看到,ViewFlipper主要用来实现View的自动切换。该类提供了如下几个主要的方法。
setFilpInterval:设置View切换的时间间隔。参数为毫秒。
startFlipping:开始进行View的切换,时间间隔是上述方法设置的间隔数。切换会循环进行。
stopFlipping:停止View切换。
setAutoStart:设置是否自动开始。如果设置为“true”,当ViewFlipper显示的时候View的切换会自动开始。
一般情况下,我们都会使用ViewFilpper类实现View的切换,而不使用它的父类ViewAnimator类。
2)实现滑动—GestureDetector介绍
如果想要实现滑动翻页的效果,就要了解另外一个类:android.view.GestureDetector类。GestureDetector类中可以用来检测各种手势事件。该类有两个回调接口,分别用来通知具体的事件。
GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于PC上面的鼠标的双击事件。
GestureDetector.OnGestureListener:用来通知普通的手势事件,该接口有六个回调方法,具体的可以查看API。这里想要实现滑动的判断,就需要用到其中的onFling()方法。
3)具体的实现
下面的代码片段详细说明了如何实现滑动翻页。
public class ViewFlipperActivity extends Activity implements OnGestureListener {
private static final int FLING_MIN_DISTANCE = 100;
private ViewFlipper flipper;
private GestureDetector detector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewflipper);
// 注册一个GestureDetector
detector = new GestureDetector(this);
flipper = (ViewFlipper) findViewById(R.id.ViewFlipper);
ImageView image1 = new ImageView(this);
image1.setBackgroundResource(R.drawable.image1);
// 增加第一个view
flipper.addView(image1);
ImageView image2 = new ImageView(this);
image2.setBackgroundResource(R.drawable.image2);
// 增加第二个view
flipper.addView(image2);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// 将触屏事件交给手势识别类处理
return this.detector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
//设置View进入和退出的动画效果
this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.left_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.left_out));
this.flipper.showNext();
return true;
}
if (e1.getX() - e2.getX()
分享到:
相关推荐
在这种情况下,`ViewFlipper`是一个非常实用的控件,它提供了方便的视图切换功能,并且可以配合手势识别来实现平滑的滑动翻页体验。 `ViewFlipper`类是`ViewAnimator`的子类,而`ViewAnimator`又继承自`FrameLayout...
在Android开发中,ViewFlipper是一个非常有用的布局控件,它允许我们轻松地实现滑动翻页的效果。这个示例将向我们展示如何在应用程序中使用ViewFlipper来创建一个动态翻页界面,使得用户可以通过手势或编程方式切换...
在这个自定义ViewFlipper中,我们可以覆盖`onTouchEvent`方法,将触控事件传递给GestureDetector进行处理。 3. **处理滑动手势**: 在GestureDetector的onFling方法中,我们需要根据用户的滑动速度和方向来判断...
**Android滑动效果ViewFlipper详解** 在Android开发中,我们常常需要实现各种动画效果来提升用户体验,其中滑动切换视图是一种常见的交互方式。`ViewFlipper`是Android SDK提供的一种布局容器,它允许我们在多个子...
接下来,我们将深入探讨这两个组件以及如何将它们结合使用来实现滑动翻页效果。 `TabHost` 是Android SDK提供的一种容器,它可以容纳多个`TabWidget`(标签)和一个`FrameLayout`(内容区域)。每个`Tab`对应一个...
下面将详细探讨如何在Android应用中使用ViewFlipper来实现页面的滑动切换。 首先,我们需要了解ViewFlipper的基本结构。一个ViewFlipper可以包含多个子视图,如ImageView、TextView或自定义布局。在初始化时,...
在这个实例中,我们将探讨如何使用ViewFlipper结合动画来实现数字的翻页效果。 首先,我们需要了解ViewFlipper的基本用法。ViewFlipper继承自ViewGroup,它可以包含多个子视图(如TextView、ImageView等)。通过...
本教程将详细讲解如何在Android应用中实现上下和左右滑动翻页的效果。 一、Android手势基础 在Android中,手势识别主要依赖于`MotionEvent`类,它包含了用户触摸屏幕时的各种动作信息,如ACTION_DOWN(按下)、...
在Android开发中,实现平滑滑动翻页的效果是一个常见的需求,特别是在开发阅读应用、相册或者动画展示等场景。这种效果通常会带来更流畅、自然的用户体验,增强应用程序的互动性和吸引力。"android 上下平滑滑动翻页...
在onFling()方法中,判断滑动的方向,如果满足左右滑动条件,则切换ViewFlipper中的视图。 2. **设置GestureDetector的监听器**: 创建一个实现了 GestureDetector.OnGestureListener接口的内部类,并在其中实现...
在Android开发中,实现用户友好的交互体验是至关重要的,其中划动翻页是一种常见的功能,常见于电子书、幻灯片展示等场景。在这个项目中,开发者利用`ViewFlipper`和`GestureDetector`来实现这一效果。下面将详细...
在Android开发中,ViewFlipper是一个非常有用的布局组件,它允许开发者轻松地在多个视图之间切换,常用于实现滑动浏览效果,如教程、引导页或者轮播图等。本示例“android viewflipper 图片滑动demo”正是这样一个...
在Android开发中,ViewFlipper是一个非常实用的控件,它允许我们轻松地在多个视图之间进行切换,常用于实现动画效果,如轮播图、广告栏等。本篇文章将深入探讨`ViewFlipper`的使用方法及其背后的实现原理。 `...
在这段代码里,创建了多个IamgeView(用来显示图片),用一个for循环来添加到了ViewFlipper中。程序运行后,当用手指在屏幕上向左滑动,会显示下一个图片,用手指在屏幕上向右滑动,会显示前一个图片。实现滑动切换...
历史最牛、绝对原创、代码简洁、功能强大,华丽的使用TabHost与ViewFlipper结合实现滑动翻页效果,支持tab背景图片自动切换.之前看到别人写的实现方法是重写TabHost,但是代码太繁琐。本程序虽然资源分高点儿,但...
在Android开发中,`ViewFlipper`是一个非常实用的视图切换组件,它允许开发者轻松地在多个子视图之间进行动画切换。本项目提供了一个简单的`ViewFlipper`实现,便于初学者理解和掌握其用法。下面我们将深入探讨`...
在Android应用开发中,ViewFlipper是一个非常实用的组件,它允许开发者实现视图间的平滑切换,通常用于创建类似轮播图或者翻页效果的界面。这个源码示例是专门为安卓学习者设计的,旨在帮助他们理解和掌握如何在...
4. **切换视图**:使用`showNext()`或`showPrevious()`方法来切换前后视图,以实现滑动翻页的效果。如果需要自动切换,可以使用`startFlipping()`和`stopFlipping()`来开启或停止自动翻页。 5. **监听事件**:为了...
ViewFlipper常用于实现翻页效果,比如滑动浏览图片或卡片。开发者可以通过设置动画来控制子视图的切换方式,比如淡入淡出、左右滑动等,这能为用户带来更流畅的交互体验。在“机锋市场”的界面中,ViewFlipper可能被...