簡體   English   中英

Android-將觸摸坐標發送到另一台設備

[英]Android - send touch coordinates to another device

我想在我的設備上繪制一些東西,然后繪畫將在另一個設備上繪制。

為此,我編寫了一個服務器,該服務器獲取onTouchEvent的坐標並將其發送到另一台設備:

public boolean onTouchEvent(MotionEvent event) {
    float touchX = event.getX();
    float touchY = event.getY();

    client.sendMessage(touchX+this.getLeft() + " " + touchY+this.getTop() + " " + event.getAction());
    return true;
}

但是,由於屏幕的尺寸不同,因此塗料不是相對的。

我該怎么辦?

tnx,抱歉我的英語不好。

解:

這是新代碼:

public boolean onTouchEvent(MotionEvent event) {
    float touchX = event.getX();
    float touchY = event.getY();
    DisplayMetrics displayMetrics = new DisplayMetrics();
    ((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    int height = displayMetrics.heightPixels;
    int width = displayMetrics.widthPixels;

    client.sendMessage((touchX)/width + " " + (touchY)/height + " " + event.getAction());
    return true;
}

不要忘記在另一個設備中進行乘法運算。

為了使其相對,必須將坐標除以屏幕的高度/寬度。

float touchX = event.getX();
float touchY = event.getY();

float relX = touchX / screenWidth;
float relY = touchY / screenHeight;

然后在另一台設備上,您需要乘以屏幕尺寸

float corX = relX * screenWidth;
float corY = relY * screenHeight;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM