lunes, 22 de octubre de 2012

Diseñando aplicaciones Android para diferentes tamaños de pantalla

Hace unos días hemos publicado en Google Play nuestra segunda aplicación Android llamada Contacts Backup. Sobre ella hablaré en otra entrada. Por ahora basta decir que permite guardar una copia de seguridad de los contactos del dispositivo y restaurarla en el mismo dispositivo o en otro. También permite exportar una lista de teléfonos y/o direcciones de email a un archivo externo en varios formatos: Excel, HTML, texto plano, etc.

Para dar el toque final a la aplicación he tenido que buscar mucha información sobre como diseñar aplicaciones Android para diferentes tamaños de pantalla. El tema es muy interesante, pero realmente hay poca documentación. Y menos aun es español. En esta entrada voy a poner un listado de artículos relacionados con este tema que he ido encontrando.

Lista de enlaces.

Algunos conceptos.

Recordemos que en Android hay que diferenciar entre el tamaño de la pantalla, expresada en pixels, y la densidad de la misma, expresada en PPP (Puntos Por Pulgada). Los dispositivos Android mezclan estas dos características.

  • Existen cuatro tamaños de pantalla estándar: pequeño (small), normal, grande (large) y extra grande (xlarge).
  • Existen cuatro densidades estándar: low (ldpi), medium (mdpi), high (hdpi) y extra high (xhdpi).
  • Además en el mismo dispositivo puede variar la orientación de la pantalla entre portrait (vertical) y landscape (horizontal), lo que a efectos prácticos es como tener dos dispositivos.

A la hora de crear nuestras pantallas en Android (layouts) tendremos en cuenta los distintos tamaños de pantalla. Para ello crearemos carpetas para los distintos tamaños de pantalla y duplicaremos los archivos en cada una de ellas.

  • layout: Orientación vertical y pantalla normal.
  • layout-land: Orientación horizontal y pantalla normal.
  • layout-large: Orientación vertical y pantalla grande.
  • layout-large-land: Orientación horizontal y pantalla grande.
  • layout-small: Orientación vertical y pantalla pequeña.
  • layout-small-land: Orientación horizontal y pantalla pequeña.
  • layout-xlarge: Orientación vertical y pantalla extra grande.
  • layout-xlarge-land: Orientación horizontal y pantalla extra grande.

Por otro lado a la hora de crear las imágenes del proyecto tendremos que tener en cuenta las distintas densidades. Para ello también crearemos carpetas con distintos nombres:

  • drawable-ldpi: 75% de tamaño.
  • drawable-mdpi: 100% de tamaño.
  • drawable-hdpi: 150% de tamaño.
  • drawable-xhdpi: 200% de tamaño.

1 comentario:

  1. Que bueno que este blog se dedique a esto ya que ayuda mucho a personas como yo cuando tienen un problema con su telefono. La verdad de todo es que me si pude como anchar la pantalla y eso me hizo feliz por que la verdad daba por perdido el telefono.

    ResponderEliminar