OpenWebinars

Desarrollo Móvil

Diferencias entre PX, DP y SP en Android

Conoce las diferentes unidades de medición en Android, mira las diferencias entre PX, DP y SP en Android.  

Miguel Campos

Miguel Campos

EXPERTO EN JAVA Y ANDROID

Lectura 2 minutos

Publicado el 4 de febrero de 2016

Compartir

    Tabla de contenidos

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.

Aprende a desarrollar apps para iOS y Android
Comienza 15 días gratis en OpenWebinars y accede cursos, talleres y laboratorios prácticos de Swift y Kotlin para crear tus propias aplicaciones.
Comenzar gratis ahora

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.

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.
Acelera tus desarrollos de software
Formaciones prácticas, avanzadas y actualizadas para que tu equipo domine las herramientas más relevantes para crear aplicaciones móviles en iOS y Android con Swift, Java y Kotlin.
Solicitar más información

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.
Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Programación en Android

Intermedio
11 h. y 34 min.

Aprende a programar en Android y Java para crear aplicaciones móviles desde cero de manera profesional. Pasa tu...

Miguel Campos
4.3