我想在我的设备中绘制一些东西,并且油漆将在另一台设备上绘制。
为此,我编写了一个服务器,它接受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;
}
不要忘记在其他设备中繁殖。
答案 0 :(得分:1)
要使其相对,您必须将坐标除以屏幕高度/宽度。
float touchX = event.getX();
float touchY = event.getY();
float relX = touchX / screenWidth;
float relY = touchY / screenHeight;
然后在另一台设备上,你需要乘以屏幕尺寸
float corX = relX * screenWidth;
float corY = relY * screenHeight;