android为了增加用户体验,新增了GestureDetector类,那该类是做什么用的呢?
通俗的讲该类是 手势检测. 难道是手指有不同的动作系统会检测到,是的.确实如此.
哎,问题来了,那诡异了.那这个类和touch有什么关系呢?我们平常写代码的时候,如何是单击,我们都是通过挂载个listener来响应这个触摸事件.那和这个类有关系吗? 恩,有关系的.
touch 是触摸,只要手指接触到屏幕都是touch. 为了增加用户体验.手指在屏幕滑动算不算触摸呢?双击算不算触摸呢?都是啊.
所以说. touch是个广泛的概念,基本用来响应单击事件,如果更细致的区分各中touch事件,那就需要该类了.
口说没用,举个例子最要紧,弄出APK是硬道理,来吧.
package com.android;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
private GestureDetector mGestureDetector = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button);
btn.setOnTouchListener(this);
mGestureDetector = new GestureDetector(this, new LearnGestureListener());
}
public boolean onTouch(View view, MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
class LearnGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapUp(MotionEvent ev) {
Log.d("DEBUG","onSingleTapUp");
return true;
}
@Override
public void onShowPress(MotionEvent ev) {
Log.d("DEBUG","onShowPress");
}
@Override
public void onLongPress(MotionEvent ev) {
Log.d("DEBUG","onLongPress");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
Log.d("DEBUG","onScroll");
return true;
}
@Override
public boolean onDown(MotionEvent ev) {
Log.d("DEBUG","onDownd");
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Log.d("DEBUG","onFling");
return true;
}
public boolean onDoubleTap(MotionEvent event){
Log.d("DEBUG","onDoubleTap");
return true;
}
}
}
mGestureDetector = new GestureDetector(this, new LearnGestureListener());
return mGestureDetector.onTouchEvent(event);
文件的关键基本就这两句.第一句创建了对象,第二句把事件传给这个对象.传过去后系统回判断做什么动作.然后new LearnGestureListener()来调用相应的处理函数做处理.
呵呵,不好整吧,要努力,深刻理解.不能光明白表面.会写APK没用,关键要理解framework运行机智.以后才有能力修改框架.
分享到:
相关推荐
这篇2011年的博客文章“2011.10.11——— android GestureDetector 测试OnGestureListener”很可能详细探讨了如何使用`GestureDetector`来监听和处理用户的手势。 `GestureDetector`的核心在于它的监听器`...
这些代码为我们展示了如何结合使用`ViewFlipper`和`GestureDetector`来处理不同的手势事件,实现划动翻页的功能。通过对这些代码的学习和理解,开发者可以进一步提升自己在Android手势识别和视图切换方面的技能。
`GestureDetector`是Android SDK提供的一种用于处理基本手势的工具类,它可以帮助开发者轻松地识别和处理用户的触摸事件,如单击、双击、滑动和长按等。本篇文章将深入探讨如何使用`GestureDetector`实现手势滑动,...
你可以使用`ViewPager`或自定义的滑动布局来实现这个功能。 5. 测试与优化: 运行你的应用,测试滑动手势是否正常工作。可能需要调整滑动阈值,以确保手势的灵敏度和稳定性。同时,为了提高用户体验,可以添加一些...
Android手势识别器GestureDetector使用详解 Android手势识别器GestureDetector是Android系统中的一种手势识别器,用于识别用户在屏幕上的各种手势,如单击、双击、滑动、拖动等。GestureDetector可以帮助开发者轻松...
在Android开发中,手势识别是用户体验设计的重要组成部分。`GestureDetector`是Android SDK提供的一种用于检测常见触摸手势的...对于Android开发者来说,深入理解和熟练运用`GestureDetector`是非常重要的技能之一。
在 Android 开发中, GestureDetector 是一个非常重要的类,它可以帮助我们实现各种手势识别功能,提高应用的交互性和用户体验。 在本文中,我们将详细介绍 Android GestureDetector 实现手势滑动效果的方法,包括...
它是`android.view`包的一部分,其核心功能是识别和处理常见的手势,比如轻扫(swipe)、长按(long press)、双击(double tap)等。`GestureDetector`类提供了两个主要的接口:`OnGestureListener`和`...
`GestureDetector`、`OnGestureListener` 和 `ViewFlipper` 是Android SDK提供的重要组件,用于处理用户的手势输入和视图切换。接下来,我们将详细讨论这三个组件以及如何将它们结合使用来创建滑动屏幕的效果。 `...
在Android中,我们可以使用`GestureDetector`类来处理用户的触摸事件,通过重写其回调方法,如`onDown()`, `onFling()`, `onScroll()`等,来检测和响应用户的滑动手势。为了实现滑动退出功能,我们通常关注`onFling...
通过这种方式,我们可以在Android应用中轻松地添加手势识别功能,提升用户体验。同时,`GestureDetector`还提供了许多其他手势监听方法,如`onDown`(手指触摸屏幕时)、`onSingleTapUp`(单击)、`onLongPress`...
在Android开发中,手势识别是实现用户交互的关键部分,尤其是多点触控功能,它可以极...通过深入理解MotionEvent和GestureDetector的工作原理,开发者可以自由地设计和实现各种自定义手势,提升应用的可玩性和功能性。
本教程将深入讲解如何使用`GestureDetector`来实现音量调节、屏幕亮度调整以及视频播放的快进和后退功能。 ### GestureDetector基本概念 `GestureDetector`是Android中的一个抽象类,它提供了处理单击、滚动、长按...
通过上述知识点,可以总结出实现Android自定义ViewGroup可滚动布局的关键点在于Scroller和GestureDetector的使用。Scroller负责滚动动画的执行,而GestureDetector则用于简化手势事件的处理。通过合理地结合这两个类...
android开发之GestureDetector手势识别调节音量亮度快进和后退源码.zip【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能...
在Android开发中,ViewFlipper和GestureDetector是两个非常重要的组件,它们可以帮助开发者实现丰富的用户交互功能,尤其是多页面切换。本教程将深入探讨如何利用这两个工具来创建一个高效的多页面切换体验。 **...
在Android开发中,`GestureDetector`是一个非常重要的工具类,它允许开发者轻松地识别和处理基本的手势操作,如滑动、点击等。...理解并熟练运用`GestureDetector`,能有效提升Android应用的用户体验和功能多样性。
GestureDetector的核心功能在于识别常见的触摸事件序列,如单击、双击、滑动和长按等。它通过监听MotionEvent事件并将其转换为可操作的手势来实现。以下是一些主要的手势及其对应的回调方法: 1. **单击(Single ...
在Android开发中,Webview是一个非常重要的组件,它允许开发者在原生应用中嵌入网页内容,实现网页...在实际开发中,还可以结合其他API和技巧,如设置Webview缓存、禁用JavaScript、添加进度条等,来实现更复杂的功能。
Android提供了GestureDetector和ScaleGestureDetector来处理用户的手势。GestureDetector可以识别滑动、点击等基本手势,而ScaleGestureDetector专门用于检测双指缩放的手势。在实现选座功能时,我们需要监听用户的...