我有一个width = 500dpi
和height = 600dpi
的自定义视图,我在(x = 230 ,y = 300)
处画了一个点,它们都取自MotionEvent.getX(),MotionEvent.getY(),自定义视图的onTouchEvent()
。此坐标实际上是在自定义视图的画布上绘制的点。
现在我如何才能使这个坐标对于不同的屏幕具有通用性。那么我可以存储(x = 230 ,y = 300)
这些点并将来在不同的屏幕上再次使用它们?
答案 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 。