如何为不同的屏幕制作硬编码(x,y)坐标?

时间:2015-07-21 15:35:20

标签: java android android-layout screen android-custom-view

我有一个width = 500dpiheight = 600dpi的自定义视图,我在(x = 230 ,y = 300)处画了一个点,它们都取自MotionEvent.getX(),MotionEvent.getY(),自定义视图的onTouchEvent()。此坐标实际上是在自定义视图的画布上绘制的点。

现在我如何才能使这个坐标对于不同的屏幕具有通用性。那么我可以存储(x = 230 ,y = 300)这些点并将来在不同的屏幕上再次使用它们?

1 个答案:

答案 0 :(得分:0)

您可以通过将坐标存储为比率来实现。

首先,您获得视图的宽度和高度:

int viewWidth = view.getWidth();   // ex. 500dpi in your explanation
int viewHeight = view.getHeight(); // ex. 600dpi in your explanation

其次,您将x-y坐标转换为屏幕左上角的比率:

double pointX = (double) MotionEvent.getX() / viewWidth;
double pointY = (double) MotionEvent.getY() / viewHeight;

然后,存储这些 pointX pointY