http://www.cnblogs.com/tianjian/archive/2011/12/15/2289143.html
大家好,关于android双击事件 我相信大家都知道 API中是有个方法的,但是必须在Activity中在能使用。
对于到底用不用android 双击事件API各有各的看法。
在Activity中使用API
优点:省时省力,别人写的东西,直接用就行了,不担心有BUG
缺点:代码写在activity中 总感觉有些乱。
自己写个onDoubleClick方法
优点:自己写的东西,好控制,灵活性强,想放哪放哪。
缺点:需要消耗点时间,检查BUG之类的。
好了,最近我也遇到了需要处理双击事件的问题,我是这样处理的
我用了android的API 但是我也很好整理。
上代码吧,只有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>class instruction:内部界面 核心Activity</p>
* create in 2011-12-2 @author Mercury
*/
public class GameActivity extends Activity {
GameActivityHelper helper;
private GestureDetector gd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
helper=new GameActivityHelper(this);
helper.init();
setContentView(helper.getGameView());
gd=new GestureDetector(this,new OnDoubleClick());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gd.onTouchEvent(event);
}
}
import android.view.GestureDetector;
import android.view.MotionEvent;
public class OnDoubleClick extends GestureDetector.SimpleOnGestureListener{
@Override
public boolean onDoubleTap(MotionEvent e) {
//TODO
return false;
}
// @Override
// public boolean onDoubleTapEvent(MotionEvent e) {
// return super.onDoubleTapEvent(e);
// }
}
代码也还算整洁。 API中对于双击有两种处理,
一种是双击后执行一次:onDoubleTap
一种是双击后执行两次:onDoubleTapEvent
这里我只需要双击后执行一次就行了,那里注释掉了
还有需要特别注意的是在自己的Activity中重写的父类Activity的方法
@Override
public boolean onTouchEvent(MotionEvent event) {
return gd.onTouchEvent(event);
}
这个方法。我在网上看到有很多人在Activity中 实现implements OnTouchListener 后会要求你重写onTouch方法来实现双击。
这完全是误导人的做法,本人亲自试过,双击是无效的,普通的点击还是有效 我是在SDK1.6版本中试的
这是个细节希望大家多注意下。
这里的onTouchEvent 是Activity中的方法,而不是实现某个接口而来的,这就是为什么只能在Activity中处理双击事件的原因,
如果你需要用androidAPI处理双击事件就必须重写Activity中的onTouchEvent 方法 否则与GestureDetector中有关的方法都无效
onTouch 只要实现了OnTouchListener接口的View或者Activity都必须重写的方法,他是不能实现GestureDetector的一些功能的
分享到:
相关推荐
android最近公司项目要用到imageview的单机双击事件,本人新手一枚,到网上查了好多资料,发现android并没有双击这么一说,都要自己去重写方法,这些都不会啊,咋整?只好想了一个土办法:原理是用时间来判断,当我点...
安卓控件单击、双击事件共存,下载附件运行即可
能实现双击事件,双击单击调用对应方法。快来下载吧,不懂可以留言
下面小编就为大家分享一篇Android双击事件拦截方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
DBClickBlocker 单击事件防止变成双击事件~ avoid fast click event in android
RecyclerView基类的封装(单击双击事件)及附demo完整使用操作
在android中双击屏幕,触发原生toast提示信息,弹出“双击”,监听点击事件判断,第一次与第二次的时间差,判断是否为双击,如果双击则触发刷双击事件,否则触发点击事件
这是Qt for Android的测试工程,主要测试QT的触摸手势事件
android view 单击、双击和移动事件处理
Android组件单双击共存,即可有单击事件,也可有双击事件
Android 双击的简单实现。
Android实现双击屏幕图片缩放效果,这个功能估计大家都见过不少吧,很多手机APP中就有,最直接的就是图库相册的预览功能里面,当显示图片缩略图的时候,双击屏幕,缩略图会按一定的比例放大显示图片,本源码所完成的...
开源的android 图片双击放大缩小代码、真的很不错
开发中遇到和该博主一样的问题http://bbs.csdn.net/topics/391079435,如何响应双击、单击事件,于是找到这篇博文:http://blog.csdn.net/jdsjlzx/article/details/7814322,拿来主义直接写个dmeo,顺利跑起来
Android review listview 显示 单击事件
android 双击放大缩小,类似苹果手机看图片那个样子.
实现android对同一button单击双击事件的区分及其监控
自定义ImageView实现Android手机相册查看照片类似的功能
Android动态全屏显示效果,不显示手机的标题栏和状态栏,本例以打开百度手机版为示例,演示双击手机屏幕立即全屏显示的效果,在手机上操作,就是用手指连续轻触屏幕两次,即可进入全屏状态。 实现时用WebView加载...