Les icônes Android (et d'autres éléments d'interface utilisateur, comme les longueurs de glissement) sont mesurées en dp
. A dp
est un pixel indépendant du périphérique / de la densité . 1 dp
équivaut à 1 px sur un écran de 160 dpi . Mais pour convertir en d'autres densités d'écran, vous devez le multiplier par un facteur de densité. Il est donc généralement recommandé de fournir plusieurs images pour la plupart des icônes .
Par exemple, les icônes de notification utilisées dans la barre d'état sont spécifiées comme 24x24 dp, avec une marge de 1 dp (donc l'icône réelle ne prend qu'un carré optique de 22x22 dp, bien qu'une partie de l'AA puisse saigner dans cette marge / safeframe de 1 dp ). Pour convertir 24 dp en tailles de pixels réelles, ces calculs approximatifs sont utilisés:
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
Il y a aussi une densité d'affichage intermédiaire appelé tvdpi
(~ 213 ppp) qui se trouve entre mdpi
et hdpi
et a un facteur d'échelle 1.33
, mais cela est beaucoup moins fréquente. Ce que les documents Android recommandent, c'est que vous suiviez un 3:4:6:8:12
taux de mise à l'échelle lorsque vous fournissez des images bitmap prédéfinies (généralement des PNG) pour les densités d'affichage les plus courantes.
Je ne vois nulle part où ils spécifient la taille dp pour les grandes icônes utilisées dans les notifications, mais la hauteur de chaque notification en mode boîte de réception normale est de 64 dp . Cela signifie donc que la taille maximale des icônes / images affichées serait:
ldpi: 48x48 px
mdpi: 64x64 px
hdpi: 96x96 px
xhdpi: 128x128 px
xxhpdi: 192x192 px
Si vous voulez savoir exactement quelles tailles d'image les icônes de stock d'Android sont, vous devriez pouvoir le découvrir à partir du pack de modèles d'icônes Android, v4.0 .
Voir aussi cette question SO: Notifications Honeycomb: Comment définir largeIcon
la bonne taille?