`

android处理单击双击和滑动事件

阅读更多

android有处理鼠标动作的GestureDetector,使用起来也挺方便,几个常用事件你都可以找到接口接入处理:

单击、双击(比如双击放大)、滑动(比如翻页)
下面是简化的例子,参考并整合所得,来源参考页尾参考内容:

package com.aslibra.test;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import android.widget.LinearLayout;
import android.widget.TextView;

public class touchGesture extends Activity implements OnGestureListener {       
  private LinearLayout main;       
  private TextView viewA;
  private GestureDetector gestureScanner;

  @Override  
  public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);   

    gestureScanner = new GestureDetector(this);   
    gestureScanner.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener(){  
      public boolean onDoubleTap(MotionEvent e) {  
        viewA.setText("-" + "onDoubleTap" + "-");  
        //双击时产生一次
        Log.v("test", "onDoubleTap");
        return false;  
      }
      public boolean onDoubleTapEvent(MotionEvent e) {  
        //双击时产生两次
        Log.v("test", "onDoubleTapEvent");
        return false;
      }  
      public boolean onSingleTapConfirmed(MotionEvent e) {  
        viewA.setText("-" + "onSingleTapConfirmed" + "-");  
        //短快的点击算一次单击
        Log.v("test", "onSingleTapConfirmed");
        return false;  
      }  
    }); 


    main = new LinearLayout(this);   
    main.setBackgroundColor(Color.GRAY);
    main.setLayoutParams(new LinearLayout.LayoutParams(320,480)); 
    main.setOrientation(LinearLayout.VERTICAL);

    viewA = new TextView(this);
    viewA.setBackgroundColor(Color.YELLOW);
    viewA.setTextColor(Color.BLACK);   
    viewA.setTextSize(16);
    viewA.setLayoutParams(new LinearLayout.LayoutParams(320,50));   
    main.addView(viewA);

    setContentView(main);   
  }

  @Override  
  public boolean onTouchEvent(MotionEvent me) {   
    return gestureScanner.onTouchEvent(me);   
  }   

  @Override  
  public boolean onDown(MotionEvent e) {   
    //viewA.setText("-" + "DOWN" + "-");   
    return true;   
  }   

  @Override  
  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {   
    //viewA.setText("-" + "FLING" + "- "+velocityX + "- "+velocityY);   
    Log.v("test", "onFling "+e1.getX()+" "+e2.getX());
    return true;   
  }   

  @Override  
  public void onLongPress(MotionEvent e) {   
    //viewA.setText("-" + "LONG PRESS" + "-");   
  }   

  @Override  
  public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {   
    //viewA.setText("-" + "SCROLL" + "- "+distanceX + "- "+distanceY);   
    Log.v("test", "onScroll "+e1.getX()+" "+e2.getX());
    return true;   
  }   

  @Override  
  public void onShowPress(MotionEvent e) {   
    //viewA.setText("-" + "SHOW PRESS" + "-");   
  }

  @Override  
  public boolean onSingleTapUp(MotionEvent e) {   
    Log.v("test", "onSingleTapUp");
    //viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);   
    return true;   
  }   
  
}  

分享到:
评论
1 楼 chen123 2012-10-22  
  38182665求加企鹅啊,大神。

相关推荐

    Android实现图片左右滚动,点击对应放大且可以缩放

    Android代码,自定义HorizontalScrollView,实现图片左右滑动切换,点击对应图片,加载对应图片,且双击和手指实现缩放功能,单击一下退出,结合了几个例子,写的一个比较完整一点的Demo,希望对需要此功能的人有所...

    真正的高手,都是一套“方法论”搞定一堆工作.pdf

    事件被看作是JavaScript与网页之间交互的桥梁,当事件发生时,可以通过JavaScript ...比如,我们在Android中非常熟悉的单击,触摸,滑动,双击,长按等等都属于事件的范畴。今天我们就来学习JavaScript中事件处理机制。

    Android相册支持点击放大图片,滑动切换图片,手势放大缩小

    项目使用了开源框架Universal-Image-Loader 显示本地图库所有照片 点击放大,单击退出 双击放大缩小 支持左右滑动查看图片 支持手势放大缩小图片

    Android中View位置和触摸事件详解

    一、简述 View是Android中所有控件的基类,不管是简单的Button和TextView,还是复杂的... GestureDetector手势检测(单击,双击,长摁,滑动) 二、View的位置参数 1、原始位置(不受偏移量影响,单位是像素px) to

    Android事件传递机制

    在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作。所有这些都构成了Android中的事件响应。总的来说,所有的事件都由如下三个部分作为基础: 按下(ACTION_...

    Android缩略图切换大图,包含RecyclerView和Viewpager联动

    在线网络图片,点击缩略图条目跳转到另一个页面展示大图,PhotoView双击放大缩小,单击消失,滑动viewpager页面联动底部的recyclerview条目以及点击底部条目上面的大图跟随着切换位置。博客讲解:...

    模仿iOS版微信的滑动View效果

    前言 最近经常交替使用Android和iOS手机。对于两个系统,从我们常用的列表来看,Android一般的列表菜单是通过长按出来的,而iOS是通过滑动出现的。...下面我放了四个动画,分别是:滑动展开,单击,长按,双击。 滑动

    gesture-recycler:该库为RecyclerView提供滑动和拖放支持

    演示版特征项目单击/长按/双击监听器可滑动项目的背景视图空视图撤消轻扫长按拖动手动模式拖动支持不同的布局经理为RecyclerView的布局管理器预定义的拖放标志DiffUtil功能页眉页脚相依性要在您的android项目中使用...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android dp和px之间转换 |--android INSTALL_PARSE_FAILED_MANIFEST_MALFORMED |--android root下禁用组件 |--android 判断网络状态 |--android 对话框样式 |--android 开机启动 |--android 挪动dialog的位置 |--...

    blink:我的蓝牙Android遥控器,已准备好公开发布

    双击现在是2个互相快速单击 右键单击灵敏度滑块(将点击保持按住多长时间) 用户界面调整 科尔多瓦更新到最新(安全预防措施) 滑动区域变更 添加了应用程序设置 笔记(主要为我自己) 依赖于以下cordova插件...

    Flutter GestureDetector轮播图

    Tap(单击) ● onTapDown: (details) {}, ● onTapUp: (details) {}, ● onTap: () {}, ● onTapCancel: () {}, 双击 ● onDoubleTap: () {}, 长按 ● onLongPress: () {}, ● onLongPressUp: () {}, 垂直滑动 ...

    百度地图开发java源码-DYVideo:高仿抖音视频播放

    百度地图开发java源码 欢迎关注公共号 关注公共号会有更多收获! 高仿抖音播放(一)——需求详解 ...单击暂停,再单击播放 下面对比一下,我实现的效果 基本上完成了我们我们预先想实现的需求。 GitHub地址:

Global site tag (gtag.js) - Google Analytics