GestureDetector——手势探测器
android.view.GestureDetector
android.view.GestureDetector.SimpleOnGestureListener
(另外android.widget.Gallery好像是更牛x的OnGestureListener )
1)新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener
可以实现以下event事件。
boolean onDoubleTap(MotionEvent e)
解释:双击的第二下Touch down时触发
boolean onDoubleTapEvent(MotionEvent e)
解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
boolean onDown(MotionEvent e)
解释:Touch down时触发
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解释:Touch了滑动一点距离后,up时触发。
void onLongPress(MotionEvent e)
解释:Touch了不移动一直Touch down时触发
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解释:Touch了滑动时触发。
void onShowPress(MotionEvent e)
解释:Touch了还没有滑动时触发
(与onDown,onLongPress比较
onDown只要Touch down一定立刻触发。
而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。
所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。
)
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。
点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
2)在view的新建一个GestureDetector的对象。
构造函数里 gestureDetector = new GestureDetector(new HahaGestureDetectorListener());
然后在View的onTouchEvent里以下这样用,就可以在刚才1)弄的事件里写自己的代码了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}
但是,郁闷的是SimpleOnGestureListener没有提供onUp(), 还得在View的
onTouchEvent的
case MotionEvent.ACTION_UP:
里来写对应的代码。
分享到:
相关推荐
在Android开发中,屏幕滑动事件的监听是十分常见的需求,尤其在打造用户交互界面时。本示例“屏幕的上下左右滑动监听事件详解demo(AS)”着重讲解了如何利用手势识别来监听和处理屏幕的滑动操作。本文将深入探讨...
本文将深入探讨一个具体的例子,即如何通过监听触摸屏上的滑动事件来截取部分图片并显示出来。这个例子基于提供的代码片段,它实现了一个简单的应用,当用户在屏幕上进行滑动操作时,会截取滑动路径覆盖的图像区域,...
Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip
ViewPager的`addOnPageChangeListener()`方法可以添加一个监听器,监听用户的滑动事件。 博客中提到的自定义控件可能是在ViewPager的基础上进行了扩展和优化,以满足特定需求,例如添加动画效果、自定义指示器或...
总结来说,通过Android的VelocityTracker类,我们可以轻松地获取屏幕滑动速度,从而实现更丰富的交互体验。在实际项目中,你可以根据具体需求调整速度阈值,以及结合其他手势检测技术,打造个性化的滑动操作。
在Android开发中,屏幕滑动检测是实现用户交互的关键部分,尤其对于移动应用而言,手势操作使得用户体验更加直观和便捷。本示例着重讲解如何在Android应用中实现滑动检测,这对于初学者来说是一个很好的起点。 `...
总的来说,"Android屏幕滑动源码"涉及到的知识点包括: 1. 自定义布局:`ScrollLayout`的设计与实现,包括触摸事件处理和滑动逻辑。 2. Activity管理:通过`Intent`和`Activity`栈进行Activity间的切换。 3. 动画...
首先,Android屏幕滑动主要依赖于ViewGroup的子类,如LinearLayout、RelativeLayout或GridLayout,以及触摸事件的处理。当用户在屏幕上滑动手指时,系统会捕捉这些滑动事件并传递给相应的视图组件。关键在于理解...
要监听屏幕滑动事件,你需要重写Activity或Fragment中的`onTouchEvent`方法。当用户在屏幕上滑动时,该方法会被调用,你可以从中获取滑动的起始和结束位置,以及滑动的总距离。 ```java @Override public ...
同时,也可以研究如何通过接口或事件监听机制将滑动事件传递给Activity,以便在适当的时机执行退出操作。 总的来说,实现Android滑动退出Activity的功能需要对Android手势识别、视图层级管理和Activity生命周期有...
这个“Android屏幕滑动和水平视图编写样例”提供了一个基础教程,帮助开发者理解如何实现这些功能。 首先,让我们详细探讨屏幕滑动。在Android中,屏幕滑动通常通过触摸手势来实现,这涉及到`GestureDetector`和`...
这样,我们就实现了对Android Webview滑动事件的监听,以及图片的放大缩小功能。通过这些技术,开发者可以更好地控制Webview的行为,提升用户体验。在实际开发中,还可以结合其他API和技巧,如设置Webview缓存、禁用...
在Android开发中,创建一个能够实现纵向滑动,即上下滑动效果的页面是一项常见的任务。这样的效果常常用于实现如滚动列表、轮播图或阅读器等应用功能。本教程将详细讲解如何在Android中实现这样的功能,并结合提供的...
当用户在屏幕上滑动时,我们需要处理滑动事件,计算滑动距离和方向,判断是否达到接听或挂断的阈值。 3. **触摸事件处理**: 在自定义控件的`onTouchEvent()`方法中,接收并处理触摸事件。根据ACTION_DOWN、ACTION...
总之,实现“Android 界面滑动效果”涉及了手势识别、滚动视图、滑动布局、事件处理和动画等多个方面。通过深入理解和熟练运用这些技术,开发者可以创造出丰富多样的滑动交互,提升Android应用的用户体验。
当用户在屏幕上滑动时,会触发相应的触摸事件,然后`ViewFlipper`通过监听这些事件来决定何时切换到下一个或上一个`GridView`。同时,动画效果的添加可以使滑动更加自然,这通常通过设置自定义的动画类来实现,比如`...
为ViewPager实现滑动吸附,我们需要监听其滑动事件,然后根据滑动方向和当前位置,调整页面的显示。这可以通过自定义ViewPager的PageTransformer来实现,或者使用第三方库,如SmartTabLayout等。 4. **TabLayout和...
`BidirSlidingLayout`很可能是我们实现这个功能的核心布局文件,它可能包含对滑动事件的监听和处理,以及动画效果的实现。 1. **基础结构**:一个基本的双向滑动菜单通常由主内容视图和侧边栏视图组成。主内容视图...
5. **监听滑动事件**:通过设置监听器来处理用户的滑动操作,例如打开、关闭菜单的动作。 6. **菜单交互**:实现菜单项的点击事件,当用户选择菜单项时触发相应的行为。 在实际开发中,为了提高用户体验,还可以...