关于android双击事件 我相信大家都知道API中是有个方法的,但是必须在Activity中在能使用。对于到底用不用android双击事件API各有各的看法。在 Activity中使用API,省时省力,别人写的东西,直接用就行了,不担心有BUG,但是代码写在activity中总感觉有些乱;自己写个 onDoubleClick方法,自己写的东西,好控制,灵活性强,想放哪放哪,但是需要消耗点时间,检查BUG之类的。
在Android游戏开发中,我们可能经常要像PC操作一样在屏幕上双击。对于屏幕双击操作,Android 1.6版本以前并没有提供完善的手势识别类,Android 1.5的SDK中提供了android.view.GestureDetector.OnDoubleTapListener,但经测试无法正常工作,不 知是何原因。最终我们的解决方案如下面的代码:
public class TouchLayout extends RelativeLayout {
public Handler doubleTapHandler = null;
protected long lastDown = -1;
public final static long DOUBLE_TIME = 500;
public TouchLayout(Context context) {
super(context);
}
public TouchLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TouchLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public boolean onTouchEvent(MotionEvent event) {
this.handleEvent(event);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
long nowDown = System.currentTimeMillis();
if (nowDown - lastDown < DOUBLE_TIME)
{
if (doubleTapHandler != null)
doubleTapHandler.sendEmptyMessage(-1);
} else {
lastDown = nowDown;
}
}
return true;
}
protected void handleEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//Do sth 这里处理即可
break;
case MotionEvent.ACTION_UP:
//Do sth
break;
}
}
}