开门见山,这是几年前做的一个按钮,如图
好不容易把效果实现了,但是后面发现了一个问题,因为这个按钮是可以滑动或者点击的,滑动倒是无所谓,down——move——up 就可以了,但是点击的时候不但会执行点击操作,也会执行down和up的动作,就冲突了,开始还自己乱搞一气,想试图谋杀onTouch,但是onClick不答应,死死拦住我说,说要想杀onTouch,必须从它尸体上踏过去。
然后搜了搜,觉得有个不是办法的办法还是不错的,就是判断down的时候以及up的时候两者的x的变化,如果没有变化,就暂定为一次onclick点击事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public boolean onTouchEvent(MotionEvent event) { final int action = event.getAction(); final int moveX = (int)event.getX(); final int scape = moveX - firstX; switch (action) { case MotionEvent.ACTION_DOWN: firstX = (int) event.getX(); break; case MotionEvent.ACTION_MOVE: if (isMove) { move(scape); } break; case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP: secondX = (int)event.getX(); int distance = secondX - firstX; if (distance == 0) { }else { } break; } return true; }
|
欧了~
写在后面:这是很早之前自己总结的一片博客,再次发出来一来是所谓开个张吧,二来是要告诫自己三件事儿,多总结,多总结,以及多总结。