unidades unidad transformar que pulgadas pixeles pasar miden medida las disponibles diferentes convertir convertidor como celular calcular mobile user-interface pixels dpi dip

mobile - unidad - transformar dp a px



¿Cómo se relacionan dp, dip, dpi, ppi, pixels y inches? (5)

Estaba leyendo las medidas dp, dip, px, sp , pero todavía tengo algunas preguntas sobre dp / dpi vs ppi vs px frente a pulgadas. No puedo compararlos ... ¿es una pulgada más grande?

Dicen que 160 ppp significa 160 píxeles por pulgada. ¿Eso significa que 1 pulgada contiene 160 píxeles?

También dicen 1 píxel en una pantalla de 160 ppp = 1 dp. ¿Eso significa que 1 píxel y 1 dp son iguales?

Y, por último, ¿por qué deberíamos usar dp en lugar de px? Entiendo que es ideal, pero ¿por qué ?


¿Cómo se relacionan dp, dip, dpi, ppi, pixels y inches?

Para el propósito del desarrollo de Android:

dp = dip dpi = ppi inch x dpi = pixels dp = 160 x inch dp = 160*pixels/dpi

Entonces, en un teléfono de 160dpi (mdpi):

2 inches = 320 dp 2 inches = 320 pixels

En un teléfono de 180 dpi:

2 inches = 320 dp 2 inches = 360 pixels

Tenga en cuenta que 2 pulgadas es SIEMPRE de 320 pd, independientemente del tamaño de la pantalla. Una dp es una distancia física de 1/16 pulgada de pulgada.

La fórmula de dp a pixels es interesante:

dp = 160*pixels/dpi

Es equivalente a:

dp = pixels/(dpi/160)

dpi/160 es un factor interesante. Es la densidad relativa en comparación con la bandeja mdpi de Android y la cantidad en la que debe escalar sus gráficos para los diferentes contenedores de recursos. Verá ese factor mencionado algunas veces en this página, 0.75 siendo el factor para ldpi.


DP es la resolución cuando solo factoriza el tamaño físico de la pantalla. Cuando usa DP escalará su diseño a otras pantallas de tamaño similar con diferentes densidades de píxeles.

Ocasionalmente, en realidad quiere píxeles, y cuando maneja dimensiones en el código, siempre trata con píxeles reales, a menos que los convierta.


Explicaré usando un ejemplo.

float density = context.getResources().getDisplayMetrics().density; float px = someDpValue * density; float dp = somePxValue / density;

la densidad es igual

.75 on ldpi (120 dpi) 1.0 on mdpi (160 dpi; baseline) 1.5 on hdpi (240 dpi) 2.0 on xhdpi (320 dpi) 3.0 on xxhdpi (480 dpi) 4.0 on xxxhdpi (640 dpi)

así por ejemplo,

Tengo un Samsung S5 con 432 dpi ( http://dpi.lv/#1920×[email protected] ).

Entonces, density = 432/160 = phone''s dpi/baseline = 2.7

Digamos que mi barra superior es 48dp . Esto está referenciado a la baseline (160dpi) .

Entonces, con mi S5, será 48dp * 2.7 .

Entonces, si quiero ver la altura real:

Será (48dp * 2.7) / 432 dpi = 0.3 inches .


dp es una medida física como pulgadas. (Sí, lo es. Siga leyendo).

"Una dp corresponde al tamaño físico de un píxel a 160 ppp" ( https://developer.android.com/training/multiscreen/screendensities.html#TaskUseD )

El tamaño físico de un píxel a 160 ppp es exactamente 1 / 160o de una pulgada. Por lo tanto, el tamaño de un dp es 1 / 160o de una pulgada. 160 dp = 1 pulgada.

Px es una unidad de medida algo arbitraria en una pantalla.

Para ver ejemplos de lo que convierte dp a en px en diferentes dispositivos, consulte aquí:

https://.com/a/39495538/984003


Debería (casi) usar siempre unidades de tamaño flexibles, como dp , que es Density-Independent Pixels, porque 300px en un dispositivo no es necesariamente la misma cantidad de espacio en pantalla que 300px en otro. La mayor implicación práctica es que su diseño se vería significativamente diferente en dispositivos con una densidad diferente a la que apuntaba su diseño.

  • dp o dip significa Píxeles independientes de la densidad
  • dpi o ppi significa puntos (o píxeles) por pulgada
  • inch es una medida física conectada al tamaño de pantalla real
  • px significa píxeles: un píxel llena una cantidad arbitraria de área de pantalla en función de la densidad.

Por ejemplo, en una pantalla de 1dp == 1px == 1/160in , 1dp == 1px == 1/160in , pero en una pantalla de 240dpi , 1dp == 1.5px . Entonces no, 1dp != 1px . Hay exactamente un caso cuando 1dp == 1px , y eso está en una pantalla de 160dpi . Las unidades de medida física como las pulgadas nunca deben ser parte de su diseño, es decir, a menos que esté haciendo una regla.

Una fórmula simple para determinar cuántos píxeles funciona 1dp es px = dp * (dpi / 160) .