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 come da risoluzione ma se non si desidera eseguire questa operazione, darlo in px .......
pixel indipendenti dalla densità (dp)
Un'unità di pixel virtuale che è necessario utilizzare quando si definisce il layout dell'interfaccia utente, per esprimere le dimensioni del layout o la posizione in modo indipendente dalla densità. Il pixel indipendente dalla densità è equivalente a un pixel fisico su uno schermo da 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.
È necessario utilizzare sempre unità dp quando si definisce l'interfaccia utente dell'applicazione, per garantire la corretta visualizzazione dell'interfaccia utente su schermi con densità diverse.
penso che sia bene cambiare il valore di cui alla delibera, ma se non si vuole fare questo dare questo px .......
riferiscono questa link
di cui al presente
dp
Pixel dipendenti dalla densità: un'unità astratta basata sulla densità fisica dello schermo. Queste unità sono relative a uno schermo da 160 dpi (punti per pollice), in cui 1 dpi è approssimativamente uguale a 1 pixel. 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-to-pixel cambierà con la densità dello schermo, ma non necessariamente in proporzione diretta. L'uso delle unità dp (invece delle unità px) è una soluzione semplice per rendere le dimensioni della vista nel layout ridimensionate correttamente per diverse densità dello schermo. In altre parole, fornisce coerenza per le dimensioni reali degli elementi dell'interfaccia utente su dispositivi diversi.
px
Pixel - corrispondenti a pixel effettivi sullo schermo. Questa unità di misura non è raccomandata in quanto la rappresentazione effettiva può variare tra i vari dispositivi; ogni dispositivo può avere un numero diverso di pixel per pollice e può avere più o meno pixel totali disponibili sullo schermo.
fonte
2012-06-20 13:47:55
Mi chiedo se è bug in Android come risorse ha metodo 'getDimensionPixelSize (int id)' che afferma esattamente che ritorna in pixel, in modo da 'getDimension (int id)' dovrebbe tornare in dp (unità indipendenti di dipendenza), che sarebbe pronto per l'uso, ad es con View 'setPadding' –