android 触摸屏双击事件

大家好,关于android双击事件 我相信大家都知道 API中是有个方法,但是必须在Activity中在能使用。
对于到底用不用android 双击事件API各有各看法。

在Activity中使用API

优点:省时省力,别人写东西,直接用就行了,不担心有BUG

缺点:代码写在activity中 总感觉有些乱。

 

自己写个onDoubleClick方法

优点:自己写东西,好控制,灵活性强,想放哪放哪。
缺点:需要消耗点时间,检查BUG之类
 
好了,最近我也遇到了需要处理双击事件问题,我是这样处理
我用了androidAPI 但是我也很好整理。

上代码吧,只有2个类 一个当然是Activity 另一个就是OnDoubleClick事件处理类

import android.app.Activity;

import android.os.Bundle;

import android.view.GestureDetector;

import android.view.MotionEvent;

import android.view.View.OnTouchListener;

 

/**

 *

 * <p>classinstruction:内部界面 核心Activity</p>

 * create in2011-12-2 @author Mercury

 */

public class GameActivity extends  Activity {

   GameActivityHelper helper;

    privateGestureDetector gd;

    @Override

    public voidonCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

        helper=newGameActivityHelper(this);

       helper.init();

       setContentView(helper.getGameView());

        gd=newGestureDetector(this,new OnDoubleClick());

    }

     @Override

    public booleanonTouchEvent(MotionEvent event) {

        returngd.onTouchEvent(event);

    }

}



import android.view.GestureDetector;

import android.view.MotionEvent;

 

public class OnDoubleClick extendsGestureDetector.SimpleOnGestureListener{

    @Override

    public booleanonDoubleTap(MotionEvent e) {

        //TODO

        returnfalse;

    }

//    @Override

//    publicboolean onDoubleTapEvent(MotionEvent e) {

//        returnsuper.onDoubleTapEvent(e);

//    }

}


代码也还算整洁。 API中对于双击有两种处理,


一种是双击后执行一次:onDoubleTap


 一种是双击后执行两次:onDoubleTapEvent


这里我只需要双击后执行一次就行了,那里注释掉了


还有需要特别注意是在自己Activity中重写父类Activity方法


@Override
 public boolean onTouchEvent(MotionEvent event) {
  return gd.onTouchEvent(event);
 }
这个方法。我在网上看到有很多人在Activity中 实现implementsOnTouchListener 后会要求你重写onTouch方法来实现双击。


这完全是误导人做法,本人亲自试过,双击是无效,普通点击还是有效我是在SDK1.6版本中试


这是个细节希望大家多注意下。


这里onTouchEvent是Activity中方法,而不是实现某个接口而来,这就是为什么只能在Activity中处理双击事件原因,


如果你需要用androidAPI处理双击事件就必须重写Activity中onTouchEvent 方法 否则与GestureDetector中有关方法都无效


onTouch 只要实现了OnTouchListener接口View或者Activity都必须重写方法,他是不能实现GestureDetector一些功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值