- Java code
public boolean onTouch(View arg0, MotionEvent arg1) { String string = null; int dx=0,dy=0,ux=0,uy=0; switch(arg1.getAction()) { case MotionEvent.ACTION_DOWN: dx=(int)arg1.getX(); dy=(int)arg1.getY(); string=Integer.toString(dx)+"|"+Integer.toString(dy); Toast.makeText(this, string, Toast.LENGTH_LONG).show(); break; case MotionEvent.ACTION_UP: ux=(int)arg1.getX(); uy=(int)arg1.getY(); string+="|"+Integer.toString(ux)+"|"+Integer.toString(uy); Toast.makeText(this, string, Toast.LENGTH_LONG).show(); break; } return false; }
鼠标单击MotionEvent.ACTION_DOWN事件可以得到响应,可是MotionEvent.ACTION_UP不能得到响应这是什么回事?
------解决方案--------------------
只有在 MotionEvent.ACTION_DOWN 返回为true时,才会继续产生MotionEvent.ACTION_MOVE/UP事件, 你可以上网查查onTouchEvent 事件。
View会优先先处理onTouchListener监听(前提是设置了) ,不在触发onTouchEvent 事件 ;
否则处理 onTouchEvent 与 onInterceptTouchEvent 触摸事件。
你自己百度吧。。