android - 在android中针对不同的屏幕尺寸使用坐标?

标签 android android-canvas

在应用程序中,假设我们有一张汽车的图像,并在其上标记了损坏点。我们可以在图像的任何位置标记这一点,如下所示。

Image 1:

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

Image 2:

最佳答案

我认为坐标取决于设备的屏幕 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);

关于android - 在android中针对不同的屏幕尺寸使用坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43132835/

相关文章:

具有行间距的 Android spannable 字符串

java - 在 Play 服务 9.4.0 中访问 AdvertisingIdClient

Android:在位图/ Canvas 中拉伸(stretch)/挤压绘图

android - 如何在canvas android中绘制一个弯曲的箭头

java - 标记未出现在圆心

android - 如何获取当前 Canvas ?

android - 无法在 appCompatActivity 中启动 Activity

java - android 中的 speex 支持

java - 如何通过我的应用程序在 soundcloud 中上传音频,我想将该 id 也发送到我的服务器

android - 无法在Android Studio中运行应用