btn2.setTouchEventListener(new Component.TouchEventListener() {
@Override
public boolean onTouchEvent(Component component, TouchEvent touchEvent) {
//参数1 代表手指的索引 单手指传递0就好了
MmiPoint pointerPosition = touchEvent.getPointerPosition(0);
float x = pointerPosition.getX();
float y = pointerPosition.getY();
int action = touchEvent.getAction();
switch (action) {
//按下
case TouchEvent.PRIMARY_POINT_DOWN:
startX = x;
startY = y;
btn2.setText("按下(" + x + "," + y + ")");
break;
//弹起
case TouchEvent.PRIMARY_POINT_UP:
// btn2.setText("弹起(" + x + "," + y + ")");
break;
//滑动
case TouchEvent.POINT_MOVE:
// btn2.setText("滑动"+count);
endX = x;
endY = y;
//右滑动 控制左边滑动浮动不超过100
if (endX > startX && Math.abs(endX - endY) < 100) {
btn2.setText("右滑(" + x + "," + y + ")");
} else if (endX < startX && Math.abs(endX - endY) < 100) {
btn2.setText("左滑(" + x + "," + y + ")");
} else if (endY > startY && Math.abs(endX - startX) < 100) {
btn2.setText("下滑(" + x + "," + y + ")");
} else if (endY < startY && Math.abs(endX - startX) < 100) {
btn2.setText("上滑(" + x + "," + y + ")");
}
break;
}
// 返回为true 所有动作都会执行并返回代码
// 返回false 表示只有一个动作会触发当前方法并执行对应代码
return true;
}
});
Swipe the black area to change
A 100 is written to prevent the situation where it is clearly a left slide but it will be judged as a right slide. Can be rewritten according to your actual needs
// return true all actions will be executed and return code // return false means only one action will trigger the current method and execute the corresponding code return true;