安卓中密度值如何计算

16

有人可以解释一下安卓用什么公式来计算屏幕密度吗?

4个回答

41

密度可以通过以下公式计算:

Density = sqrt((wp * wp) + (hp * hp)) / di

说明:

wp 是以像素为单位的宽度分辨率,

hp 是以像素为单位的高度分辨率,

di 是对角线尺寸(以英寸为单位)。


7
这个公式实际上是用于计算像素密度(ppi)的,但安卓更喜欢使用"DPI"这个术语。关于它们之间的区别可以在这里了解到。 - Fredrick Gauss
对角线尺寸是指英寸吗? - Mahdi
手机两个对面边之间的距离被称为对角线尺寸。 - AmiNadimi
别忘了之后要除以160。 - Hibbem

7
公式为实际dpi / 160。(所有内容都按照160 dpi进行缩放。)

2
谢谢回复,泰德。但是实际值是多少? - teoREtik
@teoREtik - 抱歉我没有表达清楚。没有"actual"这个值,我发的内容也不是一个涉及减法的公式。actual-dpi是屏幕实际每英寸的点数值。 - undefined

1
int pixel = 120;
final float scale = getResources().getDisplayMetrics().density;
int dip = (int) (pixel* scale + 0.5f);

请参考以下链接


非常感谢,但我必须再次重复我的问题。我想知道操作系统Android如何计算密度。在您的代码片段中,它是比例值。 - teoREtik
我阅读了有关密度的文档,但并没有完全理解。因此,我想知道它是如何计算的。这就是我提出这个问题的原因。 - teoREtik
2
我认为你需要重新表达你的问题。更详细地解释一下你想要实现什么。Android中密度的概念是实际像素数/英寸与默认每英寸160像素密度的比率。请查看DisplayMetrics类文档。 - Ted Hopp

0

计算屏幕密度,您可以使用以下公式:

屏幕密度 = 屏幕宽度(或高度)的像素数 / 屏幕宽度(或高度)的英寸数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接