WEB开发网
开发学院手机开发Android 开发 Android多点触摸的实现 阅读

Android多点触摸的实现

 2010-09-10 00:51:00 来源:WEB开发网   
核心提示:/* 下面才是多点触摸屏上报的事件 */if (ev.scancode == RawInputEvent.ABS_MT_TOUCH_MAJOR) {di.mAbs.changed = true;di.mAbs.mNextData[di.mAbs.mAddingPointerOffset+ MotionEvent.SAM

/* 下面才是多点触摸屏上报的事件 */

if (ev.scancode == RawInputEvent.ABS_MT_TOUCH_MAJOR) {

di.mAbs.changed = true;

di.mAbs.mNextData[di.mAbs.mAddingPointerOffset

+ MotionEvent.SAMPLE_PRESSURE] = ev.value;

} else if (ev.scancode == RawInputEvent.ABS_MT_POSITION_X) {

di.mAbs.changed = true;

di.mAbs.mNextData[di.mAbs.mAddingPointerOffset

+ MotionEvent.SAMPLE_X] = ev.value;

} else if (ev.scancode == RawInputEvent.ABS_MT_POSITION_Y) {

di.mAbs.changed = true;

di.mAbs.mNextData[di.mAbs.mAddingPointerOffset

+ MotionEvent.SAMPLE_Y] = ev.value;

} else if (ev.scancode == RawInputEvent.ABS_MT_WIDTH_MAJOR) {

di.mAbs.changed = true;

di.mAbs.mNextData[di.mAbs.mAddingPointerOffset

+ MotionEvent.SAMPLE_SIZE] = ev.value;

}

/* 上面这段就是多点触摸屏要用到的事件上报部分 ;

* 使用一个数组 mNextData 来保存,其中 di.mAbs.mAddingPointerOffset

* 是当前点的偏移量,在每个点中还在 MotionEvent 中定义了 X,Y,PRESSURE

* SIZE等偏移量,多点触摸屏的压力值由绝对坐标事件 ABS_MT_TOUCH_MAJOR 确定。

*/

} else if (ev.type == RawInputEvent.EV_ABS &&

(classes&RawInputEvent.CLASS_TOUCHSCREEN) != 0) {

/* 这里是对单点触摸屏上报坐标事件的新的处理方法,同样使用了数组来保存 */

if (ev.scancode == RawInputEvent.ABS_X) {

di.mAbs.changed = true;

di.curTouchVals[MotionEvent.SAMPLE_X] = ev.value;

} else if (ev.scancode == RawInputEvent.ABS_Y) {

di.mAbs.changed = true;

di.curTouchVals[MotionEvent.SAMPLE_Y] = ev.value;

} else if (ev.scancode == RawInputEvent.ABS_PRESSURE) {

di.mAbs.changed = true;

di.curTouchVals[MotionEvent.SAMPLE_PRESSURE] = ev.value;

di.curTouchVals[MotionEvent.NUM_SAMPLE_DATA

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Android 多点 触摸

编辑录入:coldstar [复制链接] [打 印]
赞助商链接