忘记原出处了,抱歉,如果有人发现原出处,麻烦提醒一下,谢谢!
正文:
PointerProperties[] properties = new PointerProperties[2];
PointerCoords[] pointerCoords = new PointerCoords[2];
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//Log.w("FragmentActivity","layout_out_0+dispatchTouchEvent:"+ev.getToolType(0));
int nToolType = ev.getToolType(0);
switch (nToolType)
{
case MotionEvent.TOOL_TYPE_ERASER:
//橡皮擦
Log.w("MotionEvent", "TOOL_TYPE_ERASER");
break;
case MotionEvent.TOOL_TYPE_FINGER:
//手指
//Log.w("MotionEvent", "TOOL_TYPE_FINGER");
float x = ev.getX();
float y = ev.getY();
PointerProperties pp1 = new PointerProperties();
pp1.id = 0;
pp1.toolType = MotionEvent.TOOL_TYPE_MOUSE;
properties[0] = pp1;
PointerCoords pc1 = new PointerCoords();
pc1.x = x;
pc1.y = y;
pc1.pressure = 1;
pc1.size = 1;
pointerCoords[0] = pc1;
//Log.i("FragmentActivity", "__one PointTouch__" + x + "___" + y + "___");
MotionEvent customEvent = null;
customEvent = MotionEvent.obtain(ev.getDownTime(), ev.getEventTime(),
ev.getAction(), 1, properties, pointerCoords,
0, 0, 1, 1, 0, 0, 0, 0);
//Log.w("TouchEventTest","触摸手势:"+customEvent.getToolType(0)+"--");
switch (customEvent.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_UP:
super.dispatchTouchEvent(customEvent);
//Log.w("2222222222222222", "222222222222222");
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
}
return super.dispatchTouchEvent(customEvent);
//return ret;
//break;
case MotionEvent.TOOL_TYPE_MOUSE:
//鼠标
//Log.w("MotionEvent", "TOOL_TYPE_MOUSE");
break;
case MotionEvent.TOOL_TYPE_STYLUS:
//手写笔
Log.w("MotionEvent", "TOOL_TYPE_STYLUS");
break;
case MotionEvent.TOOL_TYPE_UNKNOWN:
//未知
Log.w("MotionEvent", "TOOL_TYPE_UNKNOWN");
break;
}
return super.dispatchTouchEvent(ev);
}