This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
Creo que es bueno obtener el valor según la resolución, pero si no quieres hacerlo, da esto en px .......
Píxel independiente de la densidad (dp)
Una unidad de píxel virtual que debe usar al definir el diseño de la interfaz de usuario, para expresar las dimensiones o la posición del diseño de una manera independiente de la densidad. El píxel independiente de la densidad es equivalente a un píxel físico en una pantalla de 160 ppp, que es la densidad de referencia asumida por el sistema para una pantalla de densidad "media". En tiempo de ejecución, el sistema maneja de forma transparente cualquier escala de las unidades dp, según sea necesario,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.
Siempre debe usar unidades dp al definir la interfaz de usuario de su aplicación, para garantizar la visualización adecuada de su interfaz de usuario en pantallas con diferentes densidades.
Creo que es bueno cambiar el valor según la resolución, pero si no quieres hacerlo, da esto en px .......
consulte este enlace
según esto
dp
Píxeles independientes de la densidad: una unidad abstracta que se basa en la densidad física de la pantalla. Estas unidades son relativas a una pantalla de 160 ppp (puntos por pulgada), en la que 1dp es aproximadamente igual 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.
La relación de dp a píxel cambiará con la densidad de la pantalla, pero no necesariamente en proporción directa. Usar unidades dp (en lugar de unidades px) es una solución simple para hacer que las dimensiones de la vista en su diseño cambien de tamaño correctamente para diferentes densidades de pantalla. En otras palabras, proporciona consistencia para los tamaños del mundo real de los elementos de la interfaz de usuario en diferentes dispositivos.
px
Píxeles: corresponde a los píxeles reales en la pantalla. Esta unidad de medida no se recomienda porque la representación real puede variar entre dispositivos; cada dispositivo puede tener un número diferente de píxeles por pulgada y puede tener más o menos píxeles totales disponibles en la pantalla.
getDimensionPixelSize(int id)
que indica exactamente que regresa en Pixel, por lo quegetDimension(int id)
debería regresar en dp (unidades independientes de la dependencia), que estaría listo para usar, por ejemplo, con ViewsetPadding