首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android中处理不同屏幕尺寸的坐标?

在android中处理不同屏幕尺寸的坐标?
EN

Stack Overflow用户
提问于 2017-03-31 13:05:24
回答 2查看 1.3K关注 0票数 2

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

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

EN

回答 2

Stack Overflow用户

发布于 2017-03-31 13:41:17

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

代码语言:javascript
复制
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);
票数 3
EN

Stack Overflow用户

发布于 2017-03-31 23:06:07

获取屏幕的高度和宽度

代码语言:javascript
复制
    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    int height = displayMetrics.heightPixels;
    int width = displayMetrics.widthPixels;

然后计算图像的坐标,我假设您当前正在以x,y array的形式执行此操作

然后,只需通过执行以下操作即可找到所有屏幕大小的比率:

代码语言:javascript
复制
float x_ratio = coordinatesArray[0]/width
float y_ratio = coordinatesArray[1]/height

这将产生类似于0.250.34的东西(或者类似的东西,取决于屏幕的大小)

然后,您只需创建一个包含这两个浮点数的数组,并将其传递给服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43132835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档