GestureDetector应用实例
2013-11-28 15:14
295 查看
MotionEvent中定义了基本事件,View中定义了一些简单事件的处理接口,GestureDetector拓展了View中的事件接口,提供了一些复杂事件的接口。框架接口(API)的好处是框架已经帮我们定义好了为什么onDoubleClick表示双击事件,而我们只需要直接使用即可。下面通过实例说明如何使用GestureDetector类实现复杂事件。
package com.sean.gesturetest; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.widget.Toast; public class MainActivity extends Activity { private GestureDetector gesture; CharSequence onDown = "onDown Event"; CharSequence onFling = "onFling Event"; CharSequence onLongPress = "onLongPress Event"; CharSequence onScroll = "onScroll Event"; CharSequence onShowPress = "onShowPress Event"; CharSequence onSingleTapUp = "onSingleTapUp Event"; private Context mContext = this; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gesture = new GestureDetector(this, new myGestureListener() { }); } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub return gesture.onTouchEvent(event); } private class myGestureListener implements OnGestureListener { @Override public boolean onDown(MotionEvent e) { // TODO Auto-generated method stub Toast.makeText(mContext, onDown, Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // TODO Auto-generated method stub Toast.makeText(mContext, onFling, Toast.LENGTH_SHORT).show(); return false; } @Override public void onLongPress(MotionEvent e) { // TODO Auto-generated method stub Toast.makeText(mContext, onLongPress, Toast.LENGTH_SHORT).show(); } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // TODO Auto-generated method stub Toast.makeText(mContext, onScroll, Toast.LENGTH_SHORT).show(); return false; } @Override public void onShowPress(MotionEvent e) { // TODO Auto-generated method stub Toast.makeText(mContext, onShowPress, Toast.LENGTH_SHORT).show(); } @Override public boolean onSingleTapUp(MotionEvent e) { // TODO Auto-generated method stub Toast.makeText(mContext, onSingleTapUp, Toast.LENGTH_SHORT).show(); return false; } } }
相关文章推荐
- 进阶--正则表达式的应用实例通俗说明
- .net中应用正规表达式判断-两个常用实例
- ARM的嵌入式Linux移植体验之应用实例
- python中zip()方法应用实例分析
- Android EditText TextWatcher应用实例
- JFreeChart在JSP中的应用实例
- linux应用编程:signal(信号量) 实例1
- RequireJS多页面应用实例分析
- CI form_validation类实例应用
- 位运算的应用和实例
- linux的GPIO应用实例
- HTML5本地存储之Web SQL+LocalStorage+ApplicationCache以及indexed+LocalStorage+ApplicationCache构建的离线应用实例代码
- C++中引用(&)的用法和应用实例(相当经典!!!)
- 重学Python - Day 03 - python基础 -> while循环实例 + Continue && break的应用 + 列表的初步学习
- 图文详解!DevExpress XtraScheduler日程管理控件应用实例(1)-- 基本使用
- AJAX 用户注册时的应用实例
- 【Android应用实例之三】跟随手指的小球——自定义SurfaceView应用
- JWT学习(二):JWT在分布式SSO中的应用实例
- 存货收发存应用实例
- ThinkPHP创建应用的一般开发流程及实例