gpt4 book ai didi

android - 如何在不同的安卓设备上绘制一个物理尺寸相同的圆?

转载 作者:搜寻专家 更新时间:2023-11-01 08:06:51 25 4
gpt4 key购买 nike

我在资源文件中定义了一个圆半径尺寸,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="circleRadius">15dp</dimen>
</resources>

然后我像这样在自定义 View 中绘制圆圈:

Resources res = getResources();
float radius = res.getDimension(R.dimen.circleRadius);

...

canvas.drawCircle(randomX, randomY, radius, paint);

我的印象是这会在任何设备上产生一个物理尺寸相同的圆,因为单位是用 dp 指定的,但事实并非如此。请参阅下面的屏幕截图。

设备 1(皮肤=WVGA800,密度=240):

Device 1

设备 2(皮肤=QVGA,密度=120):

Device 2

设备 3(皮肤=1024x768,密度=160):

Device 3

对于每台设备,我在启动时勾选了将显示缩放为实际大小选项,并使用了相同的设置(屏幕大小=3.7 英寸,显示器 dpi=105)。这是我出错的地方吗?有什么我不明白的地方吗?

最佳答案

使用:

//get dots per inch

int dpi = getApplicationContext().getResources().getDisplayMetrics().densityDpi;

//the physical size you want in inches

float x = 0.25f;

//get number of dots for that physical size

final float radius = x*(new Float(dpi));

//now you use radius in drawCircle() method

关于android - 如何在不同的安卓设备上绘制一个物理尺寸相同的圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453173/

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