Android SDK提供了一个listener类来侦测各种不同的手势:
SimpleOnGestureListener. 你只需要实现自己所关心的手势就可以了.
Swipe在android里面是叫Fling
首先创建自己的一个手势detector类:
Java代码
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
}
一个划动的手势有几个特征, 比如是在x或者y轴上近乎直线的划动, 中途路径的偏差不能太大, 而且划动需要一定的速度, 所以我们定义几个定量:
Java代码
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
然后在onFling方法中, 判断是不是一个合理的swipe动作:
Java代码
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
viewFlipper.showNext();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
viewFlipper.showNext();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
这里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:
Java代码
viewFlipper = (ViewFlipper)findViewById(R.id.flipper);
slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
自定义的animation可以查看具体的XML, 比如从左边进来的一个动画:
Xml代码
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="800"/>
</set>
当然最后不要忘记在你的Activity中override onTouch方法来获取手势action:
Java代码
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
分享到:
相关推荐
这个"Android 滑动手势监听例子源码.zip"文件提供了一个简单的实例,帮助开发者理解和实现滑动手势监听功能。下面我们将深入探讨Android中滑动手势的原理、实现方式以及如何在实际应用中运用这些知识。 首先,...
这将使Swipper能够捕获并处理屏幕上的滑动手势。 4. **实现回调**:Swipper提供了丰富的回调接口,你可以根据需要重写这些方法来处理音量、亮度改变的事件,或者在触发搜索时启动搜索界面。 5. **测试与优化**:在...
总之,Android滑动手势翻页涉及了手势识别、事件处理、页面切换等多个方面。通过理解并熟练运用`GestureDetector`,结合适当的UI组件,你可以构建出流畅、自然的滑动浏览体验。对于`TestFlip`这个项目,可以将上述...
"图片手势滑动"通常是指通过滑动手势在多张图片之间切换,这样的功能广泛应用于相册应用、幻灯片展示等场景。本文将深入探讨如何实现这种功能,适合初学者学习。 首先,我们要理解手势识别是整个过程的关键。...
滑动手势源码通常涉及到多个Android系统提供的API和技术,包括触摸事件处理、手势识别器(GestureDetector)以及MotionEvent类。下面将详细探讨这些知识点。 1. 触摸事件处理: 在Android中,触摸事件主要通过View...
滑动手势是移动设备用户界面设计中的重要组成部分,它提供了直观、快速的交互方式,让用户通过简单的手指滑动操作执行各种功能。在这个“滑动手势的demo”中,我们将深入探讨滑动手势的原理、实现方式以及在实际应用...
### Android滑动手势侦测方法介绍 #### 一、引言 随着移动设备的普及,触摸屏成为用户与设备交互的主要方式之一。Android系统作为全球最大的移动操作系统之一,提供了丰富的API来支持各种触摸事件,包括滑动手势。...
Android中的滑动手势主要通过`GestureDetector`类来实现。`GestureDetector`是一个用于识别简单手势的工具类,它可以监听滑动、快速点击和长按等操作。开发者可以通过创建`GestureDetector`的实例,并重写其内部的回...
这样,所有的手势处理逻辑都集中在一个地方,便于维护和扩展。 此外,为了提高用户体验,我们还可以考虑加入滑动动画,比如使用`ObjectAnimator`来平滑地改变视图的位置或大小,或者使用`ViewPropertyAnimator`来...
本项目“基于Android游戏开发之滑动手势源码”聚焦于滑动手势的实现,提供了完整的源码供学习者参考和复用。下面我们将深入探讨Android中的滑动手势及其在游戏开发中的应用。 滑动手势在Android中通常通过...
"android手势处理图片平移、缩放和旋转"这个主题涉及到的主要知识点包括Android手势检测、ImageView的扩展以及图片操作。 首先,我们要了解Android的手势检测。Android系统提供了一套GestureDetector和...
2. 处理滑动手势:在onFling方法中,我们可以比较手指离开屏幕时的初始坐标和结束坐标,计算出滑动的速度和方向。如果滑动方向满足条件(例如,从左到右或者从右到左),就触发Activity的切换。 3. 启动新Activity...
// 实现滑动手势的逻辑 } @Override public boolean onSingleTapUp(MotionEvent e) { // 处理单击事件 } }); ``` 2. **处理触摸事件**: 在你的日历视图上设置触摸事件监听器,当用户触摸屏幕时,将触摸事件...
当在Fragment之间切换时,可以利用`FragmentManager`的`beginTransaction()`方法配合滑动手势,实现平滑的过渡效果。例如,添加一个`SharedElementTransition`,让两个Fragment之间的元素在滑动过程中有连续的视觉...
滑动手势通常通过检测连续的ACTION_MOVE事件来实现。当用户在屏幕上滑动时,`onTouchEvent()`会接收到一系列ACTION_MOVE事件,通过比较相邻两个事件的位置差,可以判断出滑动的方向。 三、实现上下滑动翻页 1. ...
自定义手势识别器则更灵活,可以精确控制滑动手势的触发条件和行为。 在自定义手势识别器中,你需要重写`onDown(MotionEvent e)`、`onMove(MotionEvent e1, MotionEvent e2)`等方法,检测用户的滑动动作。当滑动...
在Android开发中,实现手势滑动图片浏览是一种常见的需求,特别是在...`ViewFlipper`负责管理图片的显示,而`GestureDetector`则用于捕捉和处理滑动手势。这个解决方案可以灵活应用于各种Android应用中,提高用户体验。
1. **ViewPager组件**:ViewPager是Android Support Library中的一个视图容器,它可以包含多个子视图,并根据用户的滑动手势进行平滑地切换。每个子视图通常代表一个独立的页面。 2. **PagerAdapter**:ViewPager的...
Android提供了GestureDetector和Scroller类来帮助处理滑动事件。GestureDetector可以检测出用户的各种手势,包括滑动。你可以创建一个GestureDetector实例,然后重写它的onDown()、onFling()等方法,以此来区分不同...
### Android滑动切换及屏幕手势实现详解 随着智能手机时代的到来,触摸屏技术逐渐成为主流,传统的物理按键被触摸屏操作所取代。其中,滑动手势因其直观性和便捷性而受到用户的广泛欢迎。本文将深入探讨如何在...