Question Quelle est la différence entre "px", "dip", "dp" et "sp"?


Quelle est la différence entre les unités de mesure Android?

  • px
  • tremper
  • dp
  • sp

5152
2018-01-08 03:23


origine


Réponses:


Du Documentation développeur Android:

  1. px
    Pixels - correspond aux pixels réels sur l'écran.

  2. dans
    Pouces - basé sur la taille physique de l'écran.
      1 pouce = 2,54 centimètres

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

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

  5. dp ou tremper
    Densité-Indépendants Pixels - une unité abstraite qui est basée sur la densité physique de l'écran. Ces unités sont relatives à un 160       l'écran dpi, un dp est un pixel sur un écran de 160 dpi. Le rapport de       dp-to-pixel va changer avec la densité de l'écran, mais pas nécessairement       en proportion directe. Note: Le compilateur accepte à la fois "dip" et       "dp", bien que "dp" soit plus cohérent avec "sp".

  6. sp
    Échelle- Pixels indépendants - c'est comme l'unité dp, mais elle est également mise à l'échelle par la préférence de taille de police de l'utilisateur. Il vous est recommandé       utiliser cette unité lors de la spécification des tailles de police, de sorte qu'ils seront ajustés       pour la densité de l'écran et la préférence de l'utilisateur.

De Comprendre l'indépendance de la densité dans Android:

+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | Physical Size | Pixel Size                    | 
+----------------+----------------+---------------+-------------------------------+
| ldpi           | 120 dpi        | 0.5 x 0.5 in  | 0.5 in * 120 dpi = 60x60 px   | 
+----------------+----------------+---------------+-------------------------------+
| mdpi           | 160 dpi        | 0.5 x 0.5 in  | 0.5 in * 160 dpi = 80x80 px   | 
+----------------+----------------+---------------+-------------------------------+
| hdpi           | 240 dpi        | 0.5 x 0.5 in  | 0.5 in * 240 dpi = 120x120 px | 
+----------------+----------------+---------------+-------------------------------+
| xhdpi          | 320 dpi        | 0.5 x 0.5 in  | 0.5 in * 320 dpi = 160x160 px | 
+----------------+----------------+---------------+-------------------------------+
| xxhdpi         | 480 dpi        | 0.5 x 0.5 in  | 0.5 in * 480 dpi = 240x240 px | 
+----------------+----------------+---------------+-------------------------------+
| xxxhdpi        | 640 dpi        | 0.5 x 0.5 in  | 0.5 in * 640 dpi = 320x320 px | 
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit    | Description | Units Per     | Density     | Same Physical Size | 
|         |             | Physical Inch | Independent | On Every Screen    | 
+---------+-------------+---------------+-------------+--------------------+
| px      | Pixels      | Varies        | No          | No                 | 
+---------+-------------+---------------+-------------+--------------------+
| in      | Inches      | 1             | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| mm      | Millimeters | 25.4          | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| pt      | Points      | 72            | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| dp      | Density     | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+
| sp      | Scale       | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+

Plus d'informations peuvent également être trouvées dans le Documentation Google Design.

Pour calculer les dimensions sur le périphérique réel ce l'application peut être utilisée.


5187
2018-02-25 12:56



À peu près tout à ce sujet et comment obtenir le meilleur support pour plusieurs écrans avec différentes tailles et densités est très bien documenté ici:

Taille de l'écran
  Taille physique réelle, mesurée en diagonale de l'écran.   Pour plus de simplicité, Android regroupe toutes les tailles d'écran réelles en quatre   tailles généralisées: petit, normal, grand et extra-large.

Densité de l'écran
    La quantité de pixels dans une zone physique du   écran; généralement appelé dpi (points par pouce). Par exemple, un   l'écran de densité "faible" a moins de pixels dans une zone physique donnée,   comparé à un écran de densité "normale" ou "haute". Pour la simplicité,   Android regroupe toutes les densités d'écran réelles en six généralisées   densités: faible, moyenne, élevée, extra-haute, extra-extra-haute et   extra-extra-extra-haut.

Orientation
L'orientation de l'écran du point de vue de l'utilisateur   vue. Ceci est soit paysage ou portrait, ce qui signifie que l'écran   le rapport d'aspect est large ou grand, respectivement. Sachez que non   seulement différents dispositifs fonctionnent dans différentes orientations par   par défaut, mais l'orientation peut changer à l'exécution lorsque l'utilisateur   fait pivoter l'appareil.

Résolution
 Le nombre total de pixels physiques sur   un écran. Lorsque vous ajoutez un support pour plusieurs écrans, les applications   ne fonctionne pas directement avec la résolution; les applications devraient être concernées   seulement avec la taille de l'écran et la densité, comme spécifié par le généralisé   taille et groupes de densité.

Pixel indépendant de la densité (dp)
 Un virtuel   unité de pixel que vous devez utiliser lors de la définition de la disposition de l'interface utilisateur, pour exprimer   dimensionnement ou position d'une manière indépendante de la densité.   Le pixel indépendant de la densité équivaut à un pixel physique sur un 160   l'écran dpi, qui est la densité de base assumée par le système pour   écran de densité "moyenne". À l'exécution, le système gère de manière transparente   toute mise à l'échelle des unités dp, au besoin, en fonction de la densité réelle   de l'écran en cours d'utilisation. La conversion des unités dp en pixels d'écran est   simple:    px = dp * (dpi / 160).   Par exemple, sur un écran de 240 dpi, 1 dp   est égal à 1,5 pixels physiques. Vous devriez toujours utiliser les unités dp quand   définir l'interface utilisateur de votre application, pour garantir l'affichage correct de votre interface utilisateur   écrans avec différentes densités.

Si vous êtes sérieux au sujet du développement d'une application Android pour plus d'un type d'appareil, vous devriez avoir lu le document de développement de support d'écrans au moins une fois. En plus de cela, il est toujours bon de connaître le nombre réel de périphériques actifs ayant une configuration d'écran particulière.


606
2017-08-02 14:15



Je vais élaborer plus sur comment exactement dp convertir en px:

  • Si vous utilisez un périphérique mdpi, un 150 x 150 px l'image va prendre 150 * 150 dp de l'espace d'écran.
  • Si vous utilisez un périphérique hdpi, un 150 x 150 px l'image va prendre 100 * 100 dp de l'espace d'écran.
  • Si vous utilisez un périphérique xhdpi, un 150x150 px l'image va prendre 75 * 75 dp de l'espace d'écran.

L'inverse: par exemple, vous voulez ajouter une image à votre application et vous en avez besoin pour remplir une 100 * 100 dp contrôle. Vous devrez créer des images de tailles différentes pour les tailles d'écran prises en charge:

  • 100 * 100 px image pour mdpi
  • 150 * 150 px image pour hdpi
  • 200 * 200 px image pour xhdpi

280
2017-10-30 09:43



px Pixels - le point par échelle correspond aux pixels réels sur l'écran.

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

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

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

dp Densité - Pixels indépendants - une unité abstraite basée sur la densité physique de l'écran. Ces unités sont relatives à un écran de 160 dpi, donc un dp est un pixel sur un écran de 160 dpi. Le rapport de dp-pixel va changer avec la densité de l'écran,  mais pas nécessairement en proportion directe.  Note: Le compilateur accepte les deux dip et dp, bien que dp est plus compatible avec sp.

sp Pixels indépendants de l'échelle - C'est comme le dp unité,  mais il est également mis à l'échelle par la préférence de taille de police de l'utilisateur. Il est recommandé d'utiliser cette unité lorsque vous spécifiez des tailles de police,  ils seront donc ajustés pour la densité de l'écran et la préférence de l'utilisateur.

Prenons l'exemple de deux écrans qui ont la même taille mais dont l'un a une densité d'écran 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

232
2017-07-26 21:19



De plus, vous devriez avoir une compréhension claire des concepts suivants:

Taille de l'écran:

Taille physique réelle, mesurée en diagonale de l'écran. Pour plus de simplicité, Android regroupe toutes les tailles d'écran   quatre tailles généralisées: petite, normale, grande et extra large.

Densité de l'écran: 

La quantité de pixels dans une zone physique de l'écran; généralement appelé dpi (points par pouce). Par exemple, un   l'écran de densité "faible" a moins de pixels dans une zone physique donnée,   comparé à un écran de densité "normale" ou "haute". Pour la simplicité,   Android regroupe toutes les densités d'écran réelles en quatre généralisées   densités: faible, moyenne, élevée et très élevée.

Orientation: 

L'orientation de l'écran du point de vue de l'utilisateur. Ceci est soit paysage ou portrait, ce qui signifie que le   le format de l'écran est large ou grand, respectivement. Savoir   que non seulement différents appareils fonctionnent dans différentes orientations   par défaut, mais l'orientation peut changer au moment de l'exécution lorsque l'utilisateur   fait pivoter l'appareil.

Résolution:

Le nombre total de pixels physiques sur un écran. Lors de l'ajout de la prise en charge de plusieurs écrans, les applications ne fonctionnent pas directement   avec résolution; les applications ne devraient concerner que l'écran   taille et densité, spécifiées par la taille et la densité généralisées   groupes.

Pixel indépendant de la densité (dp): 

Une unité de pixels virtuelle que vous devez utiliser pour définir la disposition de l'interface utilisateur, pour exprimer les dimensions de mise en page ou   position d'une manière indépendante de la densité. Le pixel indépendant de la densité   est équivalent à un pixel physique sur un écran de 160 dpi, qui est le   la densité de base assumée par le système pour un écran de densité «moyenne».   Au moment de l'exécution, le système gère de manière transparente toute mise à l'échelle du dp   unités, selon les besoins, en fonction de la densité réelle de l'écran utilisé.   La conversion des unités dp en pixels est simple: px = dp * (dpi   / 160). Par exemple, sur un écran de 240 dpi, 1 dp est égal à 1,5   pixels. Vous devriez toujours utiliser les unités dp pour définir votre   l'interface utilisateur de l'application, pour assurer l'affichage correct de votre interface utilisateur sur les écrans avec   densités différentes.

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


183
2017-10-17 12:47



dp est dip. Utilisez-le pour tout (marge, rembourrage, etc.).

Utilisation sp pour {text-size} seulement.


Pour obtenir la même taille sur différentes densités d'écran, Android traduit ces unités en pixels lors de l'exécution, il n'y a donc pas de calculs difficiles à faire.


Voir la différence entre px, dp et sp sur différentes tailles d'écran.

Enter image description here

La source: Programmation Android: Le Big Nerd Ranch Guide


168
2018-01-10 19:13



J'ai calculé la formule ci-dessous pour faire les conversions dpi à dp et sp enter image description here


118
2017-12-27 09:21



Définitions

px ou point est un pixel sur l'écran physique.

dpi sont des pixels par pouce sur l'écran physique et représentent la densité de l'affichage.

Android donne noms d'alias à plusieurs densités

  • ldpi (faible) ~ 120dpi
  • mdpi (moyen) ~ 160dpi
  • hdpi (haut) ~ 240dpi
    • la plupart des appareils en 2015 sont ici
  • xhdpi (extra-haute) ~ 320dpi
    • Apple iPhone 4/5/6, Nexus 4
  • xxhdpi (extra-extra-haut) ~ 480dpi
    • Nexus 5
  • xxxhdpi (extra-extra-extra-haut) ~ 640 dpi

tremper ou dp sont pixels indépendants de la densité, c'est-à-dire qu'ils correspondent à plus ou moins de pixels en fonction de la densité physique.

  • 1dp = 1px sur mdpi

enter image description here

sp ou siroter est un pixel indépendant de l'échelle. Ils sont mis à l'échelle lorsque le Grand texte l'option est activée dans Paramètres > Accessibilité

  • 1sp = 1dp
  • 1sp = 1.2dp avec accessibilité Large Text

Que utiliser?

Utilisation sp pour la taille du texte.

Utilisation dp pour tout le reste.


106
2017-09-20 21:34



Source 1

Source 2

Source 3: (les données de la source 3 sont données ci-dessous)

Ce sont des valeurs de dimension définies en XML. Une dimension est spécifiée   avec un nombre suivi d'une unité de mesure. Par exemple: 10px, 2in,   5sp. Les unités de mesure suivantes sont supportées par Android:

dp

Pixels indépendants de la densité - Une unité abstraite basée sur le   densité physique de l'écran. Ces unités sont relatives à une résolution de 160 dpi   (points par pouce), sur lequel 1dp est à peu près égal à 1px. Quand   en cours d'exécution sur un écran de densité plus élevée, le nombre de pixels utilisés pour dessiner   1dp est mis à l'échelle par un facteur approprié pour la ppp de l'écran.   De même, lorsque sur un écran de densité inférieure, le nombre de pixels utilisés   pour 1dp est réduit. Le rapport de dp-pixel changera avec le   la densité de l'écran, mais pas nécessairement en proportion directe. Utiliser dp   unités (au lieu d'unités px) est une solution simple pour faire la vue   redimensionner correctement les dimensions dans votre mise en page pour différents écrans   densités. En d'autres termes, il fournit une cohérence pour le monde réel   tailles de vos éléments d'interface utilisateur sur différents appareils.

sp

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

pt

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

px

Pixels - Correspond aux pixels réels sur l'écran. Cette unité de   mesure n'est pas recommandée car la représentation réelle peut varier   à travers les appareils; chaque périphérique peut avoir un nombre différent de pixels par   pouces et peut avoir plus ou moins de pixels disponibles sur l'écran.

mm

Millimètres - Basé sur la taille physique de l'écran.

dans

Pouces - Basé sur la taille physique de l'écran.

Remarque: Une dimension est une ressource simple référencée à l'aide de la valeur fournie dans l'attribut name (pas le nom du fichier XML). En tant que tel, vous pouvez combiner des ressources de dimension avec d'autres ressources simples dans le fichier XML unique, sous un seul élément.


104
2018-04-02 06:35



Fondamentalement, le seul moment où px s'applique est un px, et c'est si vous voulez exactement un pixel sur l'écran, comme dans le cas d'un diviseur:

Sur> 160 dpi, vous pouvez obtenir 2-3 pixels,

Sur> 120 dpi, il arrondit à 0.


96
2017-07-09 05:46



px

Pixels - correspond aux pixels réels sur l'écran.

dp ou trempette

Pixels indépendants de la densité - une unité abstraite basée sur la densité physique de l'écran. Ces unités sont relatives à un écran de 160 dpi, donc un dp est un pixel sur un écran de 160 dpi.

Utilisation de dp:

Indépendance de la densité - Votre application obtient une «indépendance de densité» lorsqu'elle préserve la taille physique (du point de vue de l'utilisateur) des éléments de l'interface utilisateur lorsqu'elle est affichée sur des écrans de densités différentes. (c'est-à-dire) L'image doit avoir la même taille (non agrandie ou rétrécie) dans différents types d'écrans.

sp

Pixels indépendants de l'échelle - cela ressemble à l'unité dp, mais elle est également mise à l'échelle par la préférence de taille de police de l'utilisateur.

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension


81
2018-02-13 18:50