Android y las resoluciones de pantalla

Uno de los grandes problemas con los que me estoy encontrado a la hora de desarrollar en Android es que cada dispositivo trabaja con una resolución distinta, y crear una aplicación que funcione correctamente en cada una de ellas es practicamente diseñar una capa visual distinta por resolución.

Imagen de la imagen corporativa de Android

Mis primeras aplicaciones han sido pensadas en resoluciones fijas de 320×480 pixeles y ahora me doy de cuenta de los grandes problemas que tiene si se quieren visualizar en resoluciones de 240×320 o de 480×800, es un problema que no tiene una solución facil.

Apartir de la SDK1.6 cuando un desarrollador crea una aplicación desde 0 en lugar de tener 1 carpeta para almacenar todos los recursos graficos, se le generan automáticamente 3 carpetas, para almacenar las imagenes segun su resolucion y densidad de pantalla en donde tienen que mostrarse (drawable-hdpi,drawable-mdpi,drawable-ldpi).

La ayuda que proporciona google en su web es tan extensa como confusa (http://developer.android.com/guide/practices/screens_support.html), asi que voy a intentar dar un poco de luz a este problema.

Primera clave, esta tabla que explica que tipos de densidades de pantalla existen y que tamaños, lo que nos lleva a varios tipos de resoluciones.

Tabla con los distintos tipos de resoluciones que tiene android

Aclaración: La densidad es los pixeles por pulgada; es decir una imagen de 100×100 pixeles no se ve igual en todos los dispositivos.

Segunda Clave, cuantos dispositivos hay por cada tipo de densidad y tipo de pantalla:

grafico sobre las densidades de pantalla que existen en Android

Dato fundamental para saber donde hay mas clientes objetivos, ya que no es lo mismo trabajar en un mercado minimo que en un mercado mayoritario.

Tercera Clave, como hacer uso de las caracteristicas de android para que hacer algo lo mas universal posible, para el mayor numero de tamaños de pantalla, tipos de densidades y tipos de resoluciones.

Si por ejemplo desarrollas un juego para una pantalla HVGA e intentas jugar posteriormente desde una pantalla WVGA aparecera mas pequeño todo. Por lo tanto lo que hay que hacer es 3 diferentes PNG e insertarlos en su carpeta correspondiente para que tome una u otra segun la pantalla donde corra. Tu juego desarrollado para una pantalla de  HVGA necesita ajustar las imágenes e incrementarlas 1,5 veces para usarlas como HDPI , y encojerlas 0,75 veces para usarlas como LDPI. Un ejemplo es el icono de lanzamiento que por ejemplo para MDPI es un fichero PNG de 48×48 PNG, para HDPI es 72×72, pero ten en cuenta que el tamaño necesario para pintar el icono en ambas pantallas es prácticamente el mismo, lo que difiere es la densidad.

Para configurar diferentes resoluciones en Android tienes que entrar en el fichero de configuracion Android-Manifest y añadir la opcion “Support Screens”, bajo los atributos de puedes elegir Small Screen, Normal Screen, Large Screen, Resizable y Any Density. En las ultimas estadisticas la mayoria son Normal Screen (20/22 dispositivos).

Os recomiendo la siguiente configuración para aplicacion estandar:
Small screens: false
Normal Screens: true
Large Screens: false
Any Density: true

Tutorial muy interesante:

Parte1 Parte2 Parte3 Parte4 Parte5
Espero haber sido de ayuda!

Esta entrada fue publicada en Android. Guarda el enlace permanente.

7 respuestas a Android y las resoluciones de pantalla

  1. scholarships dijo:

    Arribe a tu blog buscando otra cosa en yahoo y debo reconocer que esta muy bien escrito.

  2. verónica dijo:

    Muy bueno tu website, te felicito!

  3. I do not comprehend what issues to say together with the exception that i’ve enjoyed studying your web site.

  4. Android y las resoluciones de pantalla | Esteban Etayo I was suggested this blog by my cousin. I am not sure whether this post is written by him as nobody else know such detailed about my problem. You’re wonderful! Thanks! your article about Android y las resoluciones de pantalla | Esteban EtayoBest Regards Veronica

  5. Armando dijo:

    Gracias por la info, un blog genial.

  6. lucio dijo:

    reinstale android en mid table Ibak y se instalo bien solo que tengo una pantalla completa y un cuarto de otra en la parte inferior’ fisicamente la pantalla es dew 8 pulgadas.

  7. JHON dijo:

    uy por fin encontre lo que realmente queria saber que era el Hdpi gracias por esta información es que tuve buscando y bueno no encontraba información como esta
    gracias por esta información

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>