android中有Button控件,针对Button控件有2个非常经典的处理事件那就是1、OnClick,即普通点击事件。
2、长按键事件,即当按键长时间被按下触发的一个事件。
但是我们实际处理中仅仅有他们可能不一定能完全满足我们的需求,例如:
游戏开发中一个移动按键,我们如果要实现按下按键物理持续移动,一直到我们松开按键物体才停止移动。
明显上述的需求,如果用我们的OnClick明显不能满足我们需求,因为必须按一下按键后松开才会触发OnClick,
而长按键事件,则只会触发一次,他也无法判断我们到底什么时候松开,即无法判断我们什么时候才停止移动。
针对上面我们谈到的移动按键需求,我的实现方式如下:
1、对按键进行触摸事件的监测
2、当监测到ACTION_DOWN时,开始开启一个线程一直执行我们的移动动作(当然要有一定睡眠延时)
3、当监测到ACTION_UP时,则将线程给结束
说了这么多原理,屌丝程序员早就不耐烦了吧,好吧那就直接上代码:
public boolean onTouch(final View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent