Soporte multipantalla – Android | Ruben Quadros
Recientemente, mi tarea fue analizar el impacto de admitir múltiples pantallas y diferentes direcciones en nuestra aplicación. Actualmente, nuestra aplicación solo admite el modo vertical y solo se puede ejecutar en teléfonos móviles.
Primero entendamos la declaración del problema: qué cambios se han realizado en nuestra base de código existente para admitir los modos vertical y horizontal, y para que nuestras aplicaciones se ejecuten en teléfonos, tabletas y televisores.
Ahora que entendemos el problema, lo dividiré en dos partes.
1. Admite aplicaciones en teléfonos móviles y tabletas
2. Apoyar aplicaciones en TV.
Teléfonos móviles y tabletas
nosotros CAdemás, se divide en diseños, imágenes y tamaños de varios tamaños de pantalla, y se conservan los datos sobre los cambios de configuración. Aquí, solo discutiré el diseño multipantalla (diseño XML en lugar de Componer).
Cuando considera el diseño de varios tamaños de pantalla, lo primero que piensa es solo una cosa. ¡Sí lo es! Lo adivinaste bien: ConstraintLayout.
Desde el sitio web para desarrolladores de Android: Una especie ConstraintLayout
Es un ViewGroup
Te permite colocar y ajustar el tamaño de los widgets de forma flexible.
El uso de ConstraintLayout definitivamente ayudará a que su interfaz de usuario sea flexible para admitir múltiples pantallas, pero ¿qué pasa con lo siguiente?
Para resolver este problema, puede utilizar recursos de diseño alternativos.
Puede crear un diseño llamado main_activity
Está optimizado para teléfonos móviles y tabletas al crear diferentes versiones de archivos en el directorio.
Usar calificador de ancho mínimo (sw)
El calificador de ancho mínimo le permite proporcionar diseños alternativos para pantallas con un ancho mínimo específico (dp o dip) en su aplicación.
res/layout/main_activity.xml # default
res/layout-w600dp/main_activity.xml # For 7” screens with 600dp
# wide and bigger
res/layout-w720dp/main_activity.xml # For 10” screens with 720dp
# wide and bigger
Utilice el calificador de ancho disponible (w)
El calificador de ancho disponible le permite proporcionar diseños alternativos en su aplicación según el ancho actualmente disponible en la pantalla.
res/layout/main_activity.xml # default
res/layout-w600dp/main_activity.xml # For 7” screens with 600dp
# available width
res/layout-w720dp/main_activity.xml # For 10” screens with 720dp
# available width
Usar calificadores de dirección (puerto y tierra)
Cuando el usuario cambia entre el modo vertical y horizontal, el calificador de orientación le permite proporcionar un diseño alternativo.
res/layout/main_activity.xml # portrait mode
res/layout-land/main_activity.xml # landscape mode
res/layout-sw600dp/main_activity.xml # For 7” screens
res/layout-sw600dp-land/main_activity.xml # For 7” screens in
# lanscape
Android TV
La aplicación de TV es completamente diferente.Las pantallas de televisión suelen verse a distancia Reclinarse posición. La pantalla es más grande, pero no puede ofrecer el mismo nivel de detalle y color que un teléfono móvil o una tableta.
Otro punto a tener en cuenta aquí es que el usuario no interactuará con su aplicación a través del tacto sino a través del control remoto.
Debe tener en cuenta estos factores al crear un diseño.
Los diseños separados y el uso directo de aplicaciones de TV existentes no son ideales, por varias razones.
- Debe declarar una actividad destinada a ejecutarse en el televisor en el manifiesto de la aplicación.
- Recomendado para usar Reclinarse Proporciona una biblioteca de API y widgets de interfaz de usuario para televisores.
- Puede haber limitaciones de hardware: todos los teléfonos y tabletas tienen micrófonos, GPS, cámaras, etc., pero no todos los televisores los tienen.
Por lo tanto, en mi opinión, es mejor poner su aplicación de TV en una base de código separada.