[英]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.