gpt4 book ai didi

android - 在 Canvas 上绘制圆圈,使它们在不同设备上大小相等或至少相当

转载 作者:行者123 更新时间:2023-11-29 20:56:31 25 4
gpt4 key购买 nike

我有一个应用目前需要在表面 View 的 Canvas 上绘制一些圆圈。

一切正常,但我不明白如何在不同设备上正确缩放圆圈。

我的意思是,在我的 Galaxy S4 上,圆圈的大小合适。

当我在我妻子的 Galaxy S3 上加载相同的应用程序时,相比之下,圆圈很大。

我确定这是由于屏幕分辨率和密度引起的,但我正在努力解决如何考虑屏幕分辨率/密度以根据手机尺寸正确缩放圆圈的问题。

如何在我的应用程序中绘制圆圈的示例。 crcl.radius 目前的固定大小为 100。我知道这 100 需要根据设备进行缩放,但我无法绕过公式来这样做。我假设转换相对简单。

免责声明:对 Android 有点陌生(使用它大约 6 个月)。

myCanvas.drawCircle(crcl.x, crcl.y, crcl.radius, selected_paint);

提前感谢您提供的任何帮助。

最佳答案

您可以使用 dp 值代替像素。我认为这应该可以解决问题。

myCanvas.drawCircle(crcl.x, crcl.y,  dipToPixels(getApplicationContext(),crcl.radius), selected_paint);

此函数将 dp 转换为像素。

public static float dipToPixels(Context context, float dipValue) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
}

关于android - 在 Canvas 上绘制圆圈,使它们在不同设备上大小相等或至少相当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539755/

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