Android图标(和其他UI元素,例如拖动长度)的测量单位为dp
。A dp
是与设备/密度无关的像素。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图标模板包v4.0中找到。
另请参阅以下SO问题:蜂窝通知:如何设置largeIcon
为正确的大小?