在一个应用程序中,假设我们有一个汽车的图像,上面已经标出了一个损坏点。我们可以在图像的任何位置标记此点,如下所示。



假设我们已经在屏幕尺寸为“ 5英寸”的设备上标记了该点,然后我们计算了该点的坐标并将其发送到服务器。
现在,用户正在使用另一台屏幕尺寸为“ 8英寸”的设备。用户希望在他的新设备中看到那些标记的点。但是,从服务器获取实际值后,他无法看到这些点的适当位置。

最佳答案

我认为坐标取决于设备的屏幕dpi。假设您的服务器始终以mdpi存储坐标。然后您应该以不同的dpi在设备上获得正确的坐标,如下所示:

DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);

float screenAdjust = (float) dm.densityDpi / 160f;


int x = (int) (x_value_from_server) * screenAdjust);
int y = (int) (y_value_from_server) * screenAdjust);

10-07 19:41
查看更多