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 に制限されているとします。携帯電話のタッチスクリーンを使用して座標を送信すると、PC 側のマウス カーソルは 300x700 の長方形内でのみ移動します。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

電話を縦向きモードで操作している場合も考慮する必要があることに注意してください。その場合、300x700 の代わりに 700x300 を渡す必要があります。

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