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-la en px........
Pixel indépendant de la densité (dp)
Unité virtuelle de pixels à utiliser lors de la définition de la mise en page de l'interface utilisateur, pour exprimer les dimensions ou la position de la mise en page d'une manière indépendante de la densité. Le pixel indépendant de la densité équivaut à 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". 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 lorsque vous définissez l'interface utilisateur de votre application, afin de garantir un affichage correct de votre interface utilisateur sur des écrans de différentes densités.
Je pense qu'il est bon de changer la valeur en fonction de la résolution mais si vous ne voulez pas le faire, donnez le en px........
se référer à ce enlace
selon ce qui suit
dp
Pixels indépendants de la densité - Une unité abstraite qui est basée sur la densité physique de l'écran. Ces unités sont relatives à un écran de 160 dpi (dots per inch), 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 change en fonction de la densité de l'écran, mais pas nécessairement de façon directement proportionnelle. L'utilisation d'unités dp (au lieu d'unités px) est une solution simple pour que les dimensions d'affichage de votre mise en page soient correctement redimensionnées pour différentes densités d'écran. En d'autres termes, elle assure la cohérence des tailles réelles de vos éléments d'interface utilisateur sur différents appareils.
px
Pixels - Correspond à des 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 appareil peut avoir un nombre différent de pixels par pouce et peut avoir plus ou moins de pixels totaux disponibles sur l'écran.
1 votes
Je me demande s'il s'agit d'un bug dans Android, car les ressources ont une méthode.
getDimensionPixelSize(int id)
qui indique exactement qu'il revient en Pixel, doncgetDimension(int id)
devrait revenir en dp (unités indépendantes de dépendance), qui seraient prêtes à être utilisées, par exemple avec ViewsetPadding