De this list de las unidades de dimensiones compatibles con Android, he aquí una descripción de 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, por lo que una dp es un píxel en una pantalla de 160 ppp. La relación de dp-a-píxel cambiará con la densidad de la pantalla, pero no necesariamente en proporción directa. Nota: El compilador acepta tanto "dip" como "dp", aunque "dp" es más consistente con "sp".
Esto significa que la "conversión" entre píxeles y DP no será uniforme: en algunos dispositivos, la relación podría ser 1DP = 160px, pero en teoría podría ser cualquier cosa. Esto está muy bien cuando se establece el ancho de un botón, por ejemplo, 100dp
(ya que se procesará dinámicamente), pero presenta un problema cuando se tienen imágenes que deben tener un tamaño fijo.
Lea esta página en "Supporting Multiple Screens" - Android tiene algo llamado resource directory qualifiers, que le permite crear versiones específicas de tamaño y densidad de sus recursos de imagen. Por ejemplo, para pantallas de baja densidad, puede crear una versión más pequeña de su imagen y colocarla en el directorio drawable-ldpi
(o drawable-hdpi
para pantallas de alta densidad).
tl; dr No se puede prácticamente "convertir de PX a DP" (ya que la relación no es fijo), pero puede crear varias versiones de sus imágenes y decirle a Android, que para su uso con los recursos clasificadores de directorio.
Entonces ¿Cómo puedo calcular los tamaños de fuente? Sé que en mi diseño (PSD) son 25px. Pero necesito volver a calcular este tamaño para los desarrolladores. El texto no debe ser como imágenes, ya que esta aplicación es multilingüe. – Dammark
@Dammark Para tamaños de fuente, debe usar 'sp' (píxeles independientes de la escala). Esto es básicamente lo mismo que 'dp', pero escalado por la preferencia de tamaño de fuente del usuario (consulte la lista anterior de unidades de dimensión para obtener más información). – Donut