小编Dav*_*ôté的帖子

Android最小按钮高度:48dp = 9mm?

我目前正在研究移动应用程序的线框图,而且有些东西似乎让我感到不安:在Android设计指南中,它们说明了以下内容:

平均而言,48dp转化为约9mm的物理尺寸(具有一些可变性).

但是,根据Android Developpers Dev Guide,他们dp使用以下公式计算:

与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为"中等"密度屏幕假定的基线密度.在运行时,系统根据所使用屏幕的实际密度,根据需要透明地处理dp单元的任何缩放.dp单位到屏幕像素的转换很简单:px = dp*(dpi/160).例如,在240 dpi屏幕上,1 dp等于1.5个物理像素.在定义应用程序的UI时,应始终使用dp单位,以确保在具有不同密度的屏幕上正确显示UI.

所以,为了简单起见,我在160dpi进行设计,因此我的图形尺寸符合推荐标准.打印时,我将文档缩小2,22(160dpi/72dpi),因此打印结果在纸上给出了实际的物理尺寸.

我希望我的按钮高48dp.但是,如果我按照我读到的所有内容进行数学运算,那么通过将48指定为我的按钮高度,我就无法接近9mm的大小.

48dp/160dpi = 0.3英寸,所以7.62毫米......

我明显错过了什么/做错了什么?9mm来自哪里?

谢谢!

更新

这是帮助我理解我在接受的答案中遗漏了什么的原因.

以屏幕密度200为例.Android将使用240来计算.所以:

  • 240dpi/160dpi = 1.5的比例
  • 48dp*1,5的比例= 78个物理像素
  • 78 px/240dpi = 0.3英寸(与48dp/160dpi完全相同)

现在的诀窍是实际设备密度为200.因此像素将显得比240dpi屏幕更大.要获得200dpi设备的物理尺寸,我们必须获得两种分辨率之间的差异并将其应用到0.3英寸:

  • 240dpi/200dpi = 1,2
  • 0,3 in*1,2差异= 0,36,其中9,144mm

我知道这与@kabuko所说的完全相同:

(48dp/200ppi)*1.5*25.4 mm/in = 9.14400

但一步一步的方式帮助我弄清楚幕后发生了什么.

mobile android

17
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

mobile ×1