Publicado el 29 de Junio del 2018
1.100 visualizaciones desde el 29 de Junio del 2018
1.019,8 KB
20 paginas
Creado hace 5a (07/06/2018)
Introducción
Las aplicaciones Android proporcionan, la mayor parte de ellas, una interfaz de usuario. Ésta va a
permitir una interacción bidireccional entre el usuario y la aplicación de forma visual, táctil y sonora.
Este capítulo presenta las bases de la construcción de la interfaz de usuario. Comenzamos analizando
el mecanismo de gestión de las distintas resoluciones de pantalla de los dispositivos Android
disponibles en el mercado y, a continuación, veremos un primer enfoque de las actividades, pilares de
toda aplicación que presente una interfaz de usuario. Veremos, a continuación, con detalle los
fundamentos del diseño gráfico de interfaces y estudiaremos, por último, algunos componentes entre
los más utilizados en las pantallas de una aplicación. A continuación, se estudiarán con detalle las
actividades, en el siguiente capítulo.
Es habitual hablar de clic para designar la acción de presionar y levantar la presión rápidamente sobre
un botón de un dispositivo de tipo puntero como, por ejemplo, un ratón. Si bien la mayoría de
términos Android pueden describirse sin hacer referencia al ratón, el término clic se utilizará para
describir el contacto del dedo sobre la pantalla, por estar lo suficientemente extendido en el
vocabulario corriente.
Pantallas
Una de las particularidades del sistema Android es que puede adaptarse a un gran número de configuraciones de hardware
diferentes.
El hecho que mejor pone de manifiesto esta diversidad es el tamaño de las pantallas de los dispositivos Android. Esto abarca
desde un pequeño smartphone donde la diagonal de la pantalla mide 6,5 cm hasta una tableta táctil de 30 cm, pasando por un
gran número de dispositivos de tamaño intermedio, sin contar los televisores que cuentan con el sistema Google TV basado en
Android...
No obstante el tamaño es sólo una de las características de la pantalla. La resolución de la pantalla es otra, yendo por lo general
de la mano de la primera, una pequeña pantalla presenta poca resolución y una gran pantalla presenta una resolución mucho
mayor. Conviven dispositivos Android con una resolución de 240 x 320 píxels (QVGA, Quarter Video Graphics Array) y terminales
que muestran 2560 x 1600 píxels, la versión 4.3 de Android incluye soporte para pantallas llamadas 4K, ¡que presentan una
resolución de 4096 x 2160 píxels!.
En pocas palabras, vemos que el sistema Android puede funcionar en muchas y muy diversas configuraciones de pantalla. En lo
sucesivo una aplicación pensada para una pantalla de smartphone de poca resolución tendrá un aspecto mediocre en la
inmensidad de una pantalla más grande de alta resolución. Con el objetivo de ofrecer al usuario la mejor experiencia posible, el
desarrollador deberá arreglárselas para que la aplicación se adapte también a los distintos tamaños y resoluciones de pantalla
de los dispositivos Android sobre los que se puede ejecutar la aplicación.
las
clasifica
Android
cuatro
categorías: small(pequeña), normal (normal), large (grande) et xlarge (muy grande). Esta última categoría existe desde
Android 2.3 (API 9). Encontraremos por ejemplo pantallas de unos 6,35 cm (2,5 pulgadas) de tamaño de diagonal en la categoría
de pantallas pequeñas, de unos 10 cm (4 pulgadas) en la categoría de pantallas normales, de unos 18 cm (7 pulgadas) para las
grandes pantallas y de más de 25 cm (10 pulgadas) para pantallas extragrandes.
pantallas
diagonal
tamaño
según
en
el
de
su
En una misma categoría pueden coexistir varias resoluciones. Si bien para una misma superficie de pantalla el número de píxeles
puede variar sensiblemente. El número de píxeles de una superficie determina su densidad. Se expresa en puntos por
pulgada llamados dpi (dots-per-inch).
Android clasifica así las pantallas en categorías según su densidad de píxeles: ldpi (baja), mdpi(media), hdpi (alta)
y xhdpi (muy alta), así como xxhdpi, o incluso xxxhdpi. Esta última categoría existe desde Android 2.2 (API 8).
Encontraremos por ejemplo valores de 120 dpi en la categoría de densidades bajas, 160 dpi en la categoría media, 240 dpi en la
categoría alta y 320 dpi en la categoría muy alta. Estos valores de densidad pueden servirnos como referencia.
Categoría de pantalla
Densidad en dpi
ldpi
mdpi
hdpi
xhdpi
xxhdpi
xxxhdpi
120
160
240
320
480
640
independent pixel) o píxel independiente de la densidad.
¡No confundir dpi y dip!
un
botón
tendrá
Aun así, para un tamaño
de pantalla estrictamente
igual,
de
100 píxeles de largo, por
ejemplo,
un
tamaño de visualización
diferente
las
resoluciones
son
diferentes. Para evitar
esto, Android recomienda
utilizar
nueva
unidad:
el dp o dip (density-
una
si
El sistema se encarga de convertir un valor determinado en dip en número de píxeles físicos teniendo en cuenta la densidad de
la pantalla. La dimensión física resultante será la misma sea cual sea ladensidad de la pantalla. Es decir, el botón tendrá el
mismo tamaño físico en todas las pantallas.
En Android, las dimensiones pueden especificarse en distintas unidades. En la siguiente tabla se muestra un inventario de estas
unidades:
Unidad
dp o dip
sp o sip
px
in
mm
Descripción
Unidad independiente de la densidad de la pantalla (density-independent
pixel).
Unidad dependiente del tamaño preferido para la fuente de caracteres
(scale-independent pixel). Esta unidad se utiliza para ajustar el tamaño de
la letra en cadenas de caracteres.
Pixel. Unidad gráfica mínima.
Pulgada. Unidad de medida que vale 2,54 cm.
Milímetro.
Con el objetivo de no confundir dip, sip y dpi, es preferible utilizar únicamente dp y sp.
Para que una aplicación pueda adaptarse correctamente a todos los tipos de pantalla, tamaños
y resoluciones, se recomienda encarecidamente utilizar únicamente dimensiones independientes
de la densidad, es decir especificadas en dp (o dip) y en sp (o sip).
Es posible especificar distintas variantes de una misma imagen según la densidad de la pantalla. Android buscará la versión
correspondiente a la categoría de densidad de la pantalla en curso. Si existe, la utilizará. Si no, Android buscará este recursos
para otra densidad, de forma prioritaria en las densidades mayores que la actual. Una vez encontrado, el sistema lo
redimensionará utilizando cierto factor.
Para conocer el factor a aplicar, el sistema utiliza la siguiente escala indicando los distintos ratios: 3-4-6-8-12-16 que se
corresponden respectivamente con las distintas densidades: ldpi, mdpi, hdpi,xhdpi, xxhdpi y xxxhdpi.
Por ejemplo, si la densidad de la pantalla es alta (hdpi) y el recurso no existe en esta densidad ni en una densidad superior
(xhdpi), el sistema puede utilizar la densidad media (mdpi) suponiendo que exista. A continuación el sistema modifica
automáticamente su tamaño aplicando un factor de 1,5, es decir 6/4, para las densidades altas (hdpi). Si la pantalla tiene una
densidad baja (ldpi), el factor utilizado es 0,75, es decir 3/4.
El desarrollador que quiera aportar imágenes dedicadas a una categoría de densidades específica podrá utilizar los mismos
coeficientes multiplicadores para determinar el tamaño que quiere proporcionar para estas densidades, o utilizar la siguiente
fórmula:
px=dp*(dpi/160)
Esta fórmula permite confirmar que, para una densidad media, un dp equivale a un píxel.
Por ejemplo, si aporta una imagen de 100x100 píxeles para una densidad normal (mdpi) y quiere ofrecer una para una densidad
alta, esta imagen deberá tener un tamaño de 150x150 píxeles, aplicando un coeficiente multiplicador de 1,5.
Cada versión de la imagen correspondiente a una densidad específica debe almacenarse en la subcarpeta drawable de la
carpeta res donde el calificativo se corresponda con la categoría de densidad de la pantalla.
Sintaxis
drawable-categoría_densidad
Ejemplo
En la siguiente captura de pantalla, el recurso ic_launcher está disponible para las resoluciones xxhdpi, xhdpi, hdpi y mdpi. El recurso no
existe para la resolución ldpi: en este caso se utilizará la versión mdpi transformada.
Los recursos que se encuentran en la carpeta res/drawable están considerados recursos
para una densidad media (mdpi).
Desde Android 1.6 (API 4), es posible utilizar la etiqueta supports-screen en el manifiesto para indicar al sistema, y de forma
accesoria en Google Play Store, con qué categorías de tamaño de pantalla es compatible la aplicación.
cada
una
de
estas
le
A
esta
etiqueta:android:smallScreens, android:normalScreens, android:largeScreens yandroid:xlargeScreens.
Éstas toman un valor booleano que indica si la aplicación soporta la categoría correspondiente o no. Si no es el caso, el sistema
busca la mejor solución de visualización compatible posible y convierte automáticamente las dimensiones para adaptarlas a la
pantalla utilizada.
corresponde
categorías
atributo
de
un
Los valores por defecto de estos atributos dependen de
los
atributosandroid:minSdkVersion y android:targetSdkVersion. En lo sucesivo, lo
más sencillo es indicar estos valores explícitamente en el manifiesto para evitar cualquier
ambigüedad.
los valores de
El atributo android:anyDensity toma un valor booleano que indica si la aplicación ha sido diseñada de forma independiente
a la densidad, o más concretamente si utiliza dimensiones de tipo dp o sp o bien convierte las dimensiones especificadas en
píxeles. En caso contrario, el sistema ejecutará la aplicación en un modo de compatibilidad.
Recuerde, se recomienda encarecidamente realizar aplicaciones cuya interfaz sea independiente
de la densidad de la
Comentarios de: Descubrir la Interfaz (0)
No hay comentarios