diff --git a/WebRTCController/app/src/main/java/com/tt/controller/view/RemoteTouchView.java b/WebRTCController/app/src/main/java/com/tt/controller/view/RemoteTouchView.java index f4b17fc..b83b2a4 100644 --- a/WebRTCController/app/src/main/java/com/tt/controller/view/RemoteTouchView.java +++ b/WebRTCController/app/src/main/java/com/tt/controller/view/RemoteTouchView.java @@ -22,6 +22,8 @@ public class RemoteTouchView extends SurfaceView { private float lastTouchX; private float lastTouchY; + private float lastAbsX; + private float lastAbsY; private long swipeStartTime; public interface TouchEventListener { @@ -49,8 +51,12 @@ public class RemoteTouchView extends SurfaceView { public boolean onTouchEvent(MotionEvent event) { if (listener == null) return super.onTouchEvent(event); - float relX = event.getX() / getWidth(); - float relY = event.getY() / getHeight(); + float absX = event.getX(); + float absY = event.getY(); + Log.d(TAG, "onTouchEvent: absX=" + absX + ", absY=" + absY); + + float relX = absX / getWidth(); + float relY = absY / getHeight(); // 确保坐标在 [0, 1] 范围内 relX = Math.max(0, Math.min(1, relX)); @@ -60,13 +66,13 @@ public class RemoteTouchView extends SurfaceView { case MotionEvent.ACTION_DOWN: lastTouchX = relX; lastTouchY = relY; + lastAbsX = absX; + lastAbsY = absY; swipeStartTime = System.currentTimeMillis(); return true; case MotionEvent.ACTION_MOVE: - // 实时更新坐标(可选:用于拖拽效果) - lastTouchX = relX; - lastTouchY = relY; + // 仅返回 true 以持续接收事件,不更新起始坐标,确保 onSwipe 计算的是从按下点开始的位移 return true; case MotionEvent.ACTION_UP: @@ -77,11 +83,11 @@ public class RemoteTouchView extends SurfaceView { if (duration < 200 && dx < 0.02 && dy < 0.02) { // 点击事件 listener.onTouch(lastTouchX, lastTouchY); - Log.d(TAG, "Touch at: " + lastTouchX + ", " + lastTouchY); + Log.d(TAG, "Touch at: " + lastTouchX + ", " + lastTouchY + " (abs: " + absX + ", " + absY + ")"); } else { // 滑动事件 listener.onSwipe(lastTouchX, lastTouchY, relX, relY, duration); - Log.d(TAG, "Swipe from (" + lastTouchX + "," + lastTouchY + ") to (" + relX + "," + relY + ")"); + Log.d(TAG, "Swipe from (" + lastTouchX + "," + lastTouchY + ") [abs: " + lastAbsX + "," + lastAbsY + "] to (" + relX + "," + relY + ") [abs: " + absX + "," + absY + "]"); } return true; }