Recherche…


Remarques

Termes et concepts

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: 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 écran à faible densité présente moins de pixels dans une zone physique donnée, comparé à un écran à densité "normale" ou "élevée". Pour plus de simplicité, Android regroupe toutes les densités d’écran réelles en six densités généralisées: faible, moyenne, élevée, très élevée, extra-haute et extra-extra-haute.

Orientation

L'orientation de l'écran du point de vue de l'utilisateur. Ceci est soit paysage ou portrait, ce qui signifie que le format de l'écran est soit large ou grand, respectivement. Sachez que non seulement les différents périphériques fonctionnent par défaut dans des orientations différentes, mais que l'orientation peut changer à l'exécution lorsque l'utilisateur fait pivoter le périphérique. Résolution Le nombre total de pixels physiques sur un écran. Lorsque vous ajoutez un support pour plusieurs écrans, les applications ne fonctionnent pas directement avec la résolution. les applications ne devraient concerner que la taille et la densité de l'écran, comme spécifié par les groupes de taille et de densité généralisés. Pixel indépendant de la densité (dp) Unité de pixels virtuelle que vous devez utiliser lors de la définition de la disposition de l'interface utilisateur, pour exprimer les dimensions ou la position de la disposition de manière indépendante de la densité. Le pixel indépendant de la densité est équivalent à un pixel physique sur un écran de 160 ppp, qui est la densité de base supposée par le système pour un écran de densité "moyenne". Lors de l'exécution, le système gère de manière transparente toute mise à l'échelle des unités dp, en fonction des 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 ppp, 1 dp correspond à 1,5 pixel physique. Vous devez toujours utiliser les unités dp lors de la définition de l'interface utilisateur de votre application, afin de garantir un affichage correct de votre interface utilisateur sur des écrans présentant des densités différentes.


Unités

  • px

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

  • dans

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

  • 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 ou tremper

    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 ppp, donc un pd est un pixel sur un écran de 160 ppp. Le rapport dp-pixel changera 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 compatible avec "sp".

  • sp

    Pixels indépendants de l'échelle - c'est comme l'unité dp, mais elle est également adaptée à la taille de la police de l'utilisateur. Il est recommandé d'utiliser cet appareil pour spécifier les tailles de police afin qu'elles soient adaptées à la fois à la densité de l'écran et aux préférences de l'utilisateur. De comprendre l'indépendance de la densité dans Android:


Unité La description Unités par pouce physique Densité Indépendante Même taille physique sur chaque écran
px Des pixels Varie Non Non
dans Pouces 1 Oui Oui
mm Millimètres 25.4 Oui Oui
pt Points 72 Oui Oui
dp Densité Indépendante Pixels ~ 160 Oui Non
sp Échelle des pixels indépendants ~ 160 Oui Non

Les références:

Utiliser des qualificateurs de configuration

Android prend en charge plusieurs qualificateurs de configuration qui vous permettent de contrôler la manière dont le système sélectionne vos ressources alternatives en fonction des caractéristiques de l'écran de périphérique actuel. Un qualificatif de configuration est une chaîne que vous pouvez ajouter à un répertoire de ressources dans votre projet Android et spécifie la configuration pour laquelle les ressources internes sont conçues.

Pour utiliser un qualificatif de configuration:

  1. Créez un nouveau répertoire dans le répertoire res / de votre projet et nommez-le au format suivant: <resources_name>-<qualifier> . <resources_name> nom_ressources <resources_name> est le nom de ressource standard (tel que dessinable ou mise en page).
  2. <qualifier> est un qualificatif de configuration, spécifiant la configuration d'écran pour laquelle ces ressources doivent être utilisées (telles que hdpi ou xlarge).

Par exemple, les répertoires de ressources d'application suivants proposent différents modèles de mise en page pour différentes tailles d'écran et différents tirables. Utilisez les mipmap/ dossiers pour les icônes du lanceur.

res/layout/my_layout.xml              // layout for normal screen size ("default")
res/layout-large/my_layout.xml        // layout for large screen size
res/layout-xlarge/my_layout.xml       // layout for extra-large screen size
res/layout-xlarge-land/my_layout.xml  // layout for extra-large in landscape orientation

res/drawable-mdpi/graphic.png         // bitmap for medium-density
res/drawable-hdpi/graphic.png         // bitmap for high-density
res/drawable-xhdpi/graphic.png        // bitmap for extra-high-density
res/drawable-xxhdpi/graphic.png       // bitmap for extra-extra-high-density

res/mipmap-mdpi/my_icon.png         // launcher icon for medium-density
res/mipmap-hdpi/my_icon.png         // launcher icon for high-density
res/mipmap-xhdpi/my_icon.png        // launcher icon for extra-high-density
res/mipmap-xxhdpi/my_icon.png       // launcher icon for extra-extra-high-density
res/mipmap-xxxhdpi/my_icon.png      // launcher icon for extra-extra-extra-high-density

Conversion de dp et sp en pixels

Lorsque vous avez besoin de définir une valeur de pixel pour quelque chose comme Paint.setTextSize mais que vous souhaitez tout de même la mettre à l'échelle en fonction du périphérique, vous pouvez convertir les valeurs dp et sp.

DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float pixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12f, metrics);

DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float pixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12f, metrics);

Vous pouvez également convertir une ressource de dimension en pixels si vous avez un contexte dans lequel charger la ressource.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="size_in_sp">12sp</dimen>
    <dimen name="size_in_dp">12dp</dimen>
</resources>

// Get the exact dimension specified by the resource
float pixels = context.getResources().getDimension(R.dimen.size_in_sp);
float pixels = context.getResources().getDimension(R.dimen.size_in_dp);

// Get the dimension specified by the resource for use as a size.
// The value is rounded down to the nearest integer but is at least 1px.
int pixels = context.getResources().getDimensionPixelSize(R.dimen.size_in_sp);
int pixels = context.getResources().getDimensionPixelSize(R.dimen.size_in_dp);

// Get the dimension specified by the resource for use as an offset.
// The value is rounded down to the nearest integer and can be 0px.
int pixels = context.getResources().getDimensionPixelOffset(R.dimen.size_in_sp);
int pixels = context.getResources().getDimensionPixelOffset(R.dimen.size_in_dp);

Taille du texte et différentes tailles d'écran Android

Parfois, il vaut mieux n'avoir que trois options

 style="@android:style/TextAppearance.Small"
 style="@android:style/TextAppearance.Medium"
 style="@android:style/TextAppearance.Large"

Utilisez petit et grand pour différencier de la taille de l'écran normal.

<TextView
        android:id="@+id/TextViewTopBarTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/TextAppearance.Small"/>

Pour la normale, vous n'avez rien à spécifier.

<TextView
        android:id="@+id/TextViewTopBarTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

Grâce à cela, vous pouvez éviter de tester et de spécifier des dimensions pour différentes tailles d'écran.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow