相关函数:
- event.getAction() //获取触控动作比如ACTION_DOWN
- event.getPointerCount(); //获取触控点的数量,比如2则可能是两个手指同时按压屏幕
- event.getPointerId(nID); //对于每个触控的点的细节,我们可以通过一个循环执行getPointerId方法获取索引
- event.getX(nID); //获取第nID个触控点的x位置
- event.getY(nID); //获取第nID个点触控的y位置
- event.getPressure(nID); //LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的
- event.getDownTime() //按下开始时间
- event.getEventTime() // 事件结束时间
- event.getEventTime()-event.getDownTime()); //总共按下时花费时间
/*****************************************************************************************************/
@Override
public boolean onTouchEvent(MotionEvent event) {
// 获得屏幕触点数量 //TOUCHPOINTS = 10;
int pointerCount = event.getPointerCount();
if (pointerCount > MAX_TOUCHPOINTS) {
pointerCount = MAX_TOUCHPOINTS;
}
// 锁定Canvas,开始进行相应的界面处理
Canvas c = getHolder().lockCanvas();
if (c != null) {
c.drawColor(Color.BLACK);
if (event.getAction() == MotionEvent.ACTION_UP) {
// 当手离开屏幕时,清屏
} else {
// 先在屏幕上画一个十字,然后画一个圆
for (int i = 0; i < pointerCount; i++) {
// 获取一个触点的坐标,然后开始绘制
int id = event.getPointerId(i);
int x = (int) event.getX(i);
int y = (int) event.getY(i);
....
}
}
// 画完后,unlock
getHolder().unlockCanvasAndPost(c);
}
return true;
}