Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Diferencias entre PX, DP y SP en Android

Miguel Campos
  • Escrito por Miguel Campos el 04 de Febrero de 2016
  • 2 min de lectura | Mobile
Diferencias entre PX, DP y SP en Android
El reproductor de video será cargado en breves instantes.


Una de las grandes dudas que tenemos cuando empezamos a programar en Android, es que no conocemos las unidades de medida dp y sp . Y para crear el diseño de nuestra app correctamente es imprescindible conocer como funciona.

1. Conceptos

Píxel

Un píxel es un punto que emite un solo color en una imagen o en una pantalla . Si hablamos de fotografía digital, todos conocemos a la perfección a qué nos referimos cuando hablamos de megapíxeles. Una cámara de 12 megapíxeles, puede capturar imágenes compuestas por 12 millones de píxeles, es decir, 12 millones de puntos de color. Cuanto mayor es la cantidad de puntos, o píxeles, mejor calidad tendrá la fotografía que tomamos.

A continuación se muestra una imagen de Alta densidad:

imagen de alta densidad

La siguiente figura, en cambio muestra la misma interfaz de usuario en una pantalla de baja densidad, en una pantalla del mismo tamaño, pero con menor número de píxeles:

imagen de baja densidad

Densidad de píxeles por pulgada (ppp, en inglés ppi: pixel per inch)

Es la cantidad de píxeles que cabe en una pulgada. Las pantallas de alta densidad tienen más píxeles por pulgada que los de baja densidad. Esto da como resultado que algunos elementos gráficos (como los botones) se vean más grandes en una pantalla de baja densidad y más pequeños en una de alta densidad.

Densidad de pixeles


El cálculo de la densidad de píxeles de una pantalla se expresa en la siguiente fórmula:

densidad de pantalla = anchura de pantalla (o altura) en píxeles /  anchura de pantalla (o altura) en pulgadas.

Hoy en día, al comprar un teléfono móvil una de las características en la que más se fijan los usuarios es en el tamaño de pantalla (expresado en pulgadas). Así nos encontramos móviles de 4, 5, 6 pulgadas. Dicha información suele venir acompañada de la resolución de la misma, expresada en el número de píxeles (punto de luz) que tiene la pantalla tanto en horizontal como en vertical.

2. Unidades de medida en Android

Unidades

  • px es un pixel.
  • dip o dp son píxeles de densidad independiente (density-independent pixels).
  • sp son pixels de escala independiente (scaleable pixels).

DP, los pixeles de densidad independiente

Son unidades flexibles que se escalan a dimensiones uniformes en cualquier pantalla. Cuando desarrolle aplicaciones para Android, utilice dp para mostrar los elementos uniformemente en pantallas con diferentes densidades.

Un dp es igual a un pixel en una pantalla de densidad de 160 . Para calcular dp:

dp = (ancho en píxeles * 160) / densidad de la pantalla.

SP, los píxeles de escala independient

Scale-independent-Pixels en inglés, tienen la misma función que los dp , la diferencia es que se aplican a textos, en el caso de Android para TextView o cualquier otro elemento que soporte una fuente.

El valor por defecto de un sp es el mismo que el valor por defecto de un dp . Por ejemplo:

TextView
android:id="@+id/textView"
android:text="Tamaño de texto 25sp (Scale-independent-Pixels)"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="25sp"

La diferencia principal entre un sp y un dp es que el sp preserva los ajustes del usuario respecto a la fuente . Los usuarios que tengan ajustes para agrandar el texto verán que el tamaño del texto concuerda con sus preferencias. Por ello, se recomienda el uso de esta unidad de medida para fuentes.

Escala de imágenes en Android

En Android existe una nomenclatura para categorizar las imágenes en función de la resolución de la pantalla y de la densidad de píxeles:

Screen resolution dpi Pixel ratio Image size (pixels)
xxxhdpi 640 4.0 400 x 400
xxhdpi 480 3.0 300 x 300
xhdpi 320 2.0 200 x 200
hdpi 240 1.5 150 x 150
mdpi 160 1.0 100 x 100

Android dispone de un asistente que a partir de una imagen que queramos utilizar en el proyecto, nos genera la transformación de dicha imagen a las diferentes resoluciones . Este tipo de imágenes de las que hablamos deben ser de uno de estos tipos:

  • Launcher icon: imagen utilizada para el logotipo de la aplicación. Es la que se muestra en el Menú de Aplicaciones para acceder a la aplicación.

  • Tabs icon.

Conclusión

  • dp y dpi es lo mismo y se usa para objetos tipo view (aunque también puede ser usado para texto, no se recomienda).

  • sp se utiliza sólo para texto.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars