android识别 单击和双击事件

package com.test.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 AndroidTestActivity 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);
  }
  public boolean onTouchEvent(MotionEvent me) {
    return gestureScanner.onTouchEvent(me);
  }
  public boolean onDown(MotionEvent e) {
    //viewA.setText("-" + "DOWN" + "-");
    return true;
  }
  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;
  }  

  public void onLongPress(MotionEvent e) {
    //viewA.setText("-" + "LONG PRESS" + "-");
  }
  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;
  }
  public void onShowPress(MotionEvent e) {
    //viewA.setText("-" + "SHOW PRESS" + "-");
  }
  public boolean onSingleTapUp(MotionEvent e) {
    Log.v("test", "onSingleTapUp");
    //viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);
    return true;
  }  

} 
时间: 2024-07-30 14:53:20

android识别 单击和双击事件的相关文章

Android 自定义View实现单击和双击事件的方法_Android

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下:  public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEven

Android 自定义View实现单击和双击事件的方法

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下: public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEvent

JS实现鼠标单击与双击事件共存

 本篇文章主要是对JS实现鼠标单击与双击事件共存的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 一直都认为在Web开发中,双击事件都是少至又少地使用,直到最近项目需要,要在一个按钮上绑定单击与双击两件事件.开始也觉得不就是给按钮绑下两个事件而已罢了--只是后来才明白,是我想得太简单,在双击事件触发的同时也会触发单击的~囧   通过一番研究后,终于利用JS中"setTimeout"延时执行方法的办法,将单击延迟300毫秒执行才解决了,代码如下:    代码如下: &l

单击和双击事件的冲突处理示例代码

  这篇文章主要介绍了单击和双击事件的冲突处理方法,需要的朋友可以参考下   先上代码:   <head>  <title></title>  <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>  <script type="text/javascript" language="ja

js鼠标单击和双击事件冲突问题的快速解决方法_javascript技巧

情况一 如果在一个DOM对象上同时绑定单击(click)和双击(dblclick)事件,当在这个DOM对象上发生双击事件时,第一次点击(click)会 触发一次单击(click)事件,第二次点击(连续的)也会触发双击(dblclick)事件,还是会触发单击(click)事件(IE7与 firefox). 解决方法: <button onclick="test(1)" ondblclick="test(2)"></button> <scr

girdview 在不排序时,能否实现列表头单击或双击事件?

问题描述 girdview在不排序时,能否实现列表头单击或双击事件? 解决方案 解决方案二:通过扩张gridview实现参考http://www.cnblogs.com/webabcd/archive/2007/01/22/626484.html解决方案三:使用模板列,可编辑表头,加脚本事件解决方案四:能.用模板列.<asp:templatefield><headertemplate><asp:buttonrunat=server...<headertemplate&g

JS实现鼠标单击与双击事件共存_javascript技巧

一直都认为在Web开发中,双击事件都是少至又少地使用,直到最近项目需要,要在一个按钮上绑定单击与双击两件事件.开始也觉得不就是给按钮绑下两个事件而已罢了--只是后来才明白,是我想得太简单,在双击事件触发的同时也会触发单击的~囧 通过一番研究后,终于利用JS中"setTimeout"延时执行方法的办法,将单击延迟300毫秒执行才解决了,代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

[IOS]实现IOS单击或者双击事件

提供一下三种方法参考: 方法一: //单击事件 -(void)fun1 { NSLog(@"click1"); } //双击事件 -(void)fun2 { NSLog(@"click2"); } //单击和双击方法之一 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if ([[touches anyObject] tapCount] == 1) { [self performSe

单击和双击事件的冲突处理示例代码_jquery

先上代码: 复制代码 代码如下: <head> <title></title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript" language="javascript"> $(function ()