This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
Je pense qu'il est bon d'obtenir la valeur selon la résolution mais si vous ne voulez pas le faire, donnez ceci en px .......
Pixel indépendant de la densité (dp)
Unité de pixels virtuels 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é équivaut à un pixel physique sur un écran à 160 dpi, qui est la densité de base supposée par le système pour un écran à densité "moyenne". Au moment de l'exécution, le système gère de manière transparente toute mise à l'échelle des unités dp, si nécessaire. based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels.
Vous devez toujours utiliser les unités dp lors de la définition de l'interface utilisateur de votre application, pour assurer un affichage correct de votre interface utilisateur sur des écrans de densités différentes.
Je pense qu'il est bon de changer la valeur selon la résolution mais si vous ne voulez pas le faire, donnez ceci en px .......
référer ce lien
selon cela
dp
Pixels indépendants de la densité - Unité abstraite basée sur la densité physique de l'écran. Ces unités sont relatives à un écran de 160 dpi (points par pouce), sur lequel 1dp est à peu près égal à 1px.When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down.
Le rapport dp / pixel changera avec la densité de l'écran, mais pas nécessairement en proportion directe. L'utilisation d'unités dp (au lieu d'unités px) est une solution simple pour redimensionner correctement les dimensions de la vue dans votre mise en page pour différentes densités d'écran. En d'autres termes, il offre une cohérence pour les tailles réelles de vos éléments d'interface utilisateur sur différents appareils.
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 d'un appareil à l'autre; chaque périphérique peut avoir un nombre différent de pixels par pouce et peut avoir plus ou moins de pixels totaux disponibles sur l'écran.
getDimensionPixelSize(int id)
qui indique exactement qu'il retourne en Pixel, doncgetDimension(int id)
devrait retourner en dp (unités indépendantes de la dépendance), qui serait prêt à l'emploi, par exemple avec ViewsetPadding