web-dev-qa-db-fra.com

Android attend des icônes de taille 25x25dp alors que les directives recommandent 32x32dp. Qui a tort?

Selon Android ( ici , voir le tableau # 1), le développeur doit fournir des icônes de barre d'état de tailles suivantes:

Status Bar  24 x 24 px (LDPI)  32 x 32 px (MDPI)  48 x 48 px (HDPI)

Alors que mes mesures montrent que la barre d'état a toujours une hauteur de 25 dp et attend des icônes de 25x25dp. Cela se traduit par ces tailles:

Status Bar  19 x 19 px (LDPI) 25 x 25 px (MDPI)  38 x 38 px (HDPI)

Voici comment j'obtiens ces tailles:

25dp * 0.75 = 18.75 => 19px (LDPI)
25dp *  1   = 25    => 25px (MDPI)
25dp *  1.5 = 37.5  => 38px (HDPI)

J'ai confirmé les tailles calculées sur plusieurs Android et sur les émulateurs.

La question est essentiellement: pourquoi les lignes directrices utilisent des tailles différentes de ce qui est vraiment utilisé par la barre d'état?

P.S. J'ai en fait besoin de briser les directives en raison d'exigences précises de contrôle des pixels. Et j'étais simplement confus par cet état de fait. Donc, expliquer pourquoi c'est ainsi m'aiderait vraiment.

32
inazaruk

Avertissement: que la réponse soit correcte ou non lors de l'écriture, elle ne semble pas être correcte maintenant. Voir https://www.google.com/design/spec/style/icons.html pour les directives actuelles.

Cela semble juste être une erreur. (Notez que depuis le 2010-12-04, ils ont également croisé leurs références aux figures 4 et 5 sur cette page.)

Comme le souligne Lex, ils ont le numéro correct plus bas, dans la section "Icône de la barre d'état" .

Ils dictent également un "safeframe" de 2 pixels sur tous les côtés à 25x25 dans lequel la forme de votre icône doit s'adapter, bien qu'il semble qu'il soit acceptable d'avoir des éléments liés à l'aliasing, mais uniquement sur les côtés , pour ce type d'icône. (Cela signifie que vous voulez vraiment viser le 21x21 à cette taille.)

10
SamB

En fait, c'est

  • 18 pixels (ldpi)
  • 24 px (mdpi)
  • 36 pixels (hdpi)
  • 48 pixels (xhdpi)
  • 72 px (xxhdpi)
  • 96px (xxxhdpi)

sa taille est de 24dp avec un rembourrage de 2dp, ce qui signifie un contenu de 20dp

px = dp * (dpi/160)

55
user1531030