5977 votes

Différence entre px, dp, dip et sp dans Android?

Quelqu'un peut-il expliquer les différences entre l' px, dip, dp et sp des parts dans Android?

5901voto

Alex Volovoy Points 34562
  • px est un pixel.
  • sp est à l'échelle des pixels indépendants.
  • dip est indépendante de la Densité de pixels.

Vous utilisez

  • sp pour les tailles de police
  • dip pour tout le reste.

    dip==dp

De Android centre des Développeurs:

px
Pixels correspond à la taille réelle des pixels sur l'écran.

dans
Pouces - fonction de la taille physique de l'écran.

mm
Mm - fonction de la taille physique de l'écran.

pt
Points - 1/72 de pouce sur la taille physique de l'écran.

dp
Indépendante de la densité de Pixels - un résumé de l'unité qui est basé sur la densité physique de l'écran. Ces unités sont relatifs à un 160 dpi de l'écran, donc un dp est un pixel sur un 160 dpi de l'écran. Le ratio de la dp-à-pixel va changer avec la densité de l'écran, mais pas nécessairement en proportion directe. Remarque: Le compilateur accepte à la fois les "dip" et "dp", bien que "dp" est plus compatible avec le "sp".

sp
À l'échelle des Pixels indépendants - c'est comme le dp de l'unité, mais il est également mis à l'échelle par l'utilisateur de la taille de la police de préférence. Il est recommandé d'utiliser cette unité lors de la spécification des tailles de police, de sorte qu'ils seront ajustés à la fois la densité de l'écran et les préférences de l'utilisateur.

705voto

Bruiser Points 4732

Utilisation dp (== dip) pour tout, mais pour les polices utiliser sp

À peu près tout à ce sujet et la façon d'obtenir la meilleure prise en charge de plusieurs écrans avec différentes tailles et de densité est très bien documenté ici:

Si vous êtes sérieux au sujet de développer une application android pour plus d'un type de dispositif, vous devez avoir lu ci-dessus au moins une fois. En outre, il est toujours une bonne chose de connaître le nombre réel des actifs des appareils qui ont un écran de configuration.

363voto

devmiles.com Points 2694

Je m'étendrai plus sur comment exactement dp convertir px:

  • Si en cours d'exécution sur mdpi appareil 150x150 px image prend 150*150 dp de l'espace à l'écran.
  • Si en cours d'exécution sur hdpi appareil 150x150 px image prend 100*100 dp de l'espace à l'écran.
  • Si en cours d'exécution sur xhdpi appareil 150x150 px image prend 75*75 dp de l'espace à l'écran.

Dans l'autre sens: vous souhaitez ajouter une image à votre demande et vous en avez besoin pour remplir 100*100 dp contrôle, vous aurez besoin de créer différents de la taille des images pour les tailles d'écran:

  • 100*100 pixels de l'image pour mdpi
  • 150*150 px pour hdpi
  • 200*200 px pour xhdpi

297voto

Amit patel Points 616

px Pixels - point par l'échelle correspond à la taille réelle des pixels sur l'écran.

dans Pouces - fonction de la taille physique de l'écran.

mm Millimètres basée sur la taille physique de l'écran.

pt Points - 1/72 de pouce sur la taille physique de l'écran.

dp La densité dePixels indépendants - un résumé de l'unité qui est basé sur la densité physique de l'écran. Ces unités sont relatifs à un 160 dpi de l'écran, donc un dp est un pixel sur un 160 dpi de l'écran. Le ratio de la dp-à-pixel va changer avec la densité de l'écran, mais pas nécessairement en proportion directe. Remarque: Le compilateur accepte à la fois les "dip" et "dp", bien que "dp" est plus compatible avec le "sp".

sp À l'échelledes Pixels indépendants - c'est comme le dp de l'unité, mais il est également mis à l'échelle par l'utilisateur de la taille de la police de préférence. Il est recommandé d'utiliser cette unité lors de la spécification des tailles de police, de sorte qu'ils seront ajustés à la fois la densité de l'écran et les préférences de l'utilisateur.

Prenons l'exemple de deux écrans de même taille, mais on a une résolution de 160 dpi (points par pouce, c'est à dire pixels par pouce) et l'autre est de 240 dpi.

                          Lower resolution   screen          Higher resolution, same size
Physical Width                      1.5 inches                        1.5 inches
Dots Per Inch ("dpi")               160                               240
Pixels (=width*dpi)                 240                               360
Density (factor of baseline 160)    1.0                               1.5
Density-independent Pixels          240                               240
("dip" or "dp" or "dps")
Scale-independent pixels ("sip" or "sp")    Depends on user font size settings  same

240voto

Hissain Points 880

En outre, vous devriez avoir une compréhension claire sur les concepts suivants:

Taille de l'écran: dimension physique, mesuré à partir de l'écran de diagonale. Pour des raisons de simplicité, Android tous les groupes d'écran de la taille quatre généralisée tailles: petit, normal, large et extra large.

Densité de l'écran: La quantité de pixels à l'intérieur d'une zone physique de l'écran, généralement appelé ppp (points par pouce). Par exemple, un "faible" densité de l'écran a moins de pixels à l'intérieur d'une zone physique, par rapport à un "normal" ou "haute densité" de l'écran. Pour des raisons de simplicité, Android tous les groupes d'écran densités en quatre généralisée densités: faible, moyen, élevé et très élevé.

Orientation: L'orientation de l'écran de l'utilisateur du point de vue. C'est soit en mode paysage ou portrait, ce qui signifie que la l'écran rapport d'aspect est soit large ou de haut, respectivement. Être conscient que non seulement les différents appareils fonctionnent dans des orientations différentes par défaut, mais l'orientation peut être modifiée à l'exécution lorsque l'utilisateur fait pivoter l'appareil.

Résolution: Le nombre total de physique de pixels sur un écran. Lors de l'ajout de prise en charge de plusieurs écrans, les applications ne fonctionnent pas directement avec la résolution; les demandes doivent être concerné seulement avec l'écran de la taille et de la densité, comme spécifié par la généralisation de la taille et de la densité groupes de.

Indépendante de la densité de pixel (dp): Un pixel virtuel de l'unité que vous devez utiliser lors de la définition de disposition de l'INTERFACE utilisateur, pour exprimer les dimensions structure ou position indépendante de la densité. L'indépendante de la densité de pixels est équivalent à un physique de pixel sur un 160 dpi de l'écran, qui est la de base de la densité assumé par le système pour un "moyen" de la densité de l'écran. Au moment de l'exécution, le système de façon transparente, poignées de mise à l'échelle de la dp unités, sur la base de la densité réelle de l'écran en cours d'utilisation. La conversion de dp unités de pixels de l'écran est simple: px = dp * (dpi / 160). Par exemple, sur un 240 dpi de l'écran, 1 dp, soit 1,5 physique pixels. Vous devriez toujours utiliser dp unités lors de la définition de votre l'application de l'INTERFACE utilisateur, afin d'assurer le bon affichage de votre INTERFACE sur les écrans avec différentes densités.

Référence: site des développeurs Android

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X