gpt4 book ai didi

Android - 在不同的设备上绘图

转载 作者:行者123 更新时间:2023-11-29 00:39:38 26 4
gpt4 key购买 nike

在我的应用程序中,我创建了一个 Canvas 并在其上添加了一些位图。问题是对象正在添加为什么要触摸屏幕。所以在一个屏幕上,它们出现在不同的中间,但它们的像素位置不同。

我的意思是我有平板电脑和智能手机。当我触摸一个对象时,该对象出现在两个设备上(多人游戏)但它不在同一个地方,因为它通过 x 和 y 传递位置。

如果有人明白我的意思,你能帮帮我吗?大概和计算比率有共同点吧。

最佳答案

我猜您遇到的问题是屏幕分辨率不同,并且您传递的是像素数据。您将需要使用 dp 值,并在发送它们之前将 dp 转换为像素值。在接收设备上,您需要将发送回给定设备上的像素值转换为 dp。使用以下方法进行转换。

将 DP 转换为像素:

    final float scale = getResources().getDisplayMetrics().density;
int pixelValue = (int) (DESIRED_DP_VALUE * scale + 0.5f);

将像素转换为 DP:

    final float scale = getResources().getDisplayMetrics().density;
int dpValue = (int) ((DESIRED_PIXEL_VALUE) - 0.5f / scale);

调用 getDisplayMetrics().density 将为您提供基于当前设备的比例值。 dp 值与密度无关。

关于Android - 在不同的设备上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com