This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
Penso che sia buono per ottenere il valore secondo la risoluzione, ma se non vuoi farlo, dai questo in px .......
Pixel indipendente dalla densità (dp)
Un'unità pixel virtuale da utilizzare durante la definizione del layout dell'interfaccia utente, per esprimere le dimensioni o la posizione del layout in modo indipendente dalla densità. Il pixel indipendente dalla densità equivale a un pixel fisico su uno schermo a 160 dpi, che è la densità di base assunta dal sistema per uno schermo a densità "media". In fase di runtime, il sistema gestisce in modo trasparente qualsiasi ridimensionamento delle unità dp, se necessario, 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.
è sempre necessario utilizzare le unità dp durante la definizione dell'interfaccia utente dell'applicazione, per garantire la corretta visualizzazione dell'interfaccia utente su schermi con densità diverse.
Penso che sia buono cambiare il valore secondo la risoluzione, ma se non vuoi farlo, dai questo in px .......
fai riferimento a questo link
secondo questo
dp
Pixel indipendenti dalla densità - Un'unità astratta basata sulla densità fisica dello schermo. Queste unità sono relative ad uno schermo di 160 dpi (punti per pollice), su cui 1dp è approssimativamente uguale a 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.
Il rapporto tra dp-pixel cambierà con la densità dello schermo, ma non necessariamente in proporzione diretta. L'uso di unità dp (anziché unità px) è una soluzione semplice per ridimensionare correttamente le dimensioni della vista nel layout per diverse densità dello schermo. In altre parole, fornisce coerenza per le dimensioni del mondo reale degli elementi dell'interfaccia utente su dispositivi diversi.
px
Pixel: corrisponde ai pixel effettivi sullo schermo. Questa unità di misura non è consigliata perché la rappresentazione effettiva può variare a seconda del dispositivo; ogni dispositivo può avere un diverso numero di pixel per pollice e può avere più o meno pixel totali disponibili sullo schermo.
getDimensionPixelSize(int id)
che afferma esattamente che ritorna in Pixel, quindigetDimension(int id)
dovrebbe tornare in dp (unità indipendenti dalla dipendenza), che sarebbe pronto per l'uso, ad esempio con ViewsetPadding