如何将手机的屏幕坐标映射到我的电脑屏幕?

时间:2013-04-01 01:57:11

标签: android mouse coordinates screen-resolution pc

我终于开发了我的应用程序,我可以使用我的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,电脑屏幕为1080x720。现在,如果我使用手机的触摸屏发送坐标,它只会在300x700矩形内的PC侧移动鼠标光标。我想在1080x720矩形内移动它。

1 个答案:

答案 0 :(得分:1)

我认为你可以通过数学来解决它。

您需要向PC发送4个参数。

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