1

我终于开发了我的应用程序,我可以用我的 Android 手机控制 PC 鼠标。我正在使用触摸屏来控制鼠标。

问题是鼠标光标仅在受手机屏幕尺寸限制的特定区域内移动。我希望能够到处移动光标?我需要某种映射吗?

这就是我从手机发送坐标的方式:

public boolean onTouchEvent(MotionEvent evt)
{   
    String coords = Math.round(evt.getX()) + ", " + Math.round(evt.getY());

    Log.d(TAG, coords);

    msgIO.sendMessage(soc, coords);

    return true;
}

澄清一下:假设手机屏幕限制为 300x700,PC 屏幕限制为 1080x720。现在,如果我使用手机的触摸屏发送坐标,它只会将鼠标光标移动到 300x700 矩形内的 pc 端。我想在 1080x720 矩形内移动它。

4

1 回答 1

1

我想你可以用数学来解决它。

您需要将 4 个参数发送到 PC。

String coords = Phone_Touched_X;
coords += ", "
coords += Phone_Touched_Y
coords += ", "
coords += Phone_Screen_X
coords += ", "
coords += Phone_Screen_Y

PC端:

Position_X = PC_Screen_X * Phone_Touched_X / Phone_Screen_X;
Position_Y = PC_Screen_Y * Phone_Touched_Y / Phone_Screen_Y;

例子:

您在 300x700 的手机屏幕上触摸了 200,200。并将其发送到 1080x720 的 PC。

Position_X = 1080 * 200 / 300 = 720
Position_Y = 720 * 200 / 700 = 205

请注意,您还需要考虑是否以纵向模式操作手机。在这种情况下,您应该传递 700x300 而不是 300x700。

Position_X = 1080 * 200 / 700 = 308
Position_Y = 720 * 200 / 300 = 480
于 2013-04-01T02:31:13.067 回答