Android 图标(和其他 UI 元素,如拖动长度)以dp
. Adp
是与设备/密度无关的像素。1 dp
相当于160 dpi 屏幕上的 1 像素。但要转换为其他屏幕密度,您需要将其乘以密度因子。因此,通常建议为大多数图标提供多个图像。
例如,状态栏中使用的通知图标指定为 24x24 dp,具有 1 dp 边距(因此实际图标仅占用 22x22 dp 光学方块,尽管一些 AA 可以渗入该 1 dp 边距/安全框)。要将 24 dp 转换为实际像素大小,请使用以下粗略计算:
display density dp units * scale = px units
ldpi ~120 dpi 24x24 dp * .75 = 18x18 px
mdpi ~160 dpi 24x24 dp * 1.0 = 24x24 px
hdpi ~240 dpi 24x24 dp * 1.5 = 36x36 px
xhdpi ~320 dpi 24x24 dp * 2.0 = 48x48 px
xxhdpi ~480 dpi 24x24 dp * 3.0 = 72x72 px
还有一个称为tvdpi
(~213 dpi) 的中间显示密度,它位于mdpi
和 之间,hdpi
比例因子为1.33
,但这种情况不太常见。Android 文档建议您3:4:6:8:12
在为最常见的显示密度提供预缩放位图图像(通常是 PNG)时遵循缩放比例。
我没有看到他们为通知中使用的大图标指定 dp 大小的任何地方,但普通收件箱视图中每个通知的高度是64 dp。这意味着显示的图标/图像的最大尺寸为:
ldpi: 48x48 px
mdpi: 64x64 px
hdpi: 96x96 px
xhdpi: 128x128 px
xxhpdi: 192x192 px
如果您想确切地知道 Android 的股票图标的图像尺寸是多少,您应该能够从Android Icon Templates Pack, v4.0中找到。
另请参阅此 SO 问题:Honeycomb 通知:如何设置largeIcon
为正确的大小?