Quiero crear un "modo nocturno" rojo para mi aplicación para Android
Estoy creando una aplicación para uso de los pilotos. En su mayoría utiliza TextView
, EditText
, Button
, etc En otras palabras, no muy gráficos pesados.
Cuando se utiliza de noche, me gustaría que el usuario pueda cambiar a un "modo nocturno" donde todo en la pantalla es rojo y negro … como la aplicación Google Sky Map. (Esto es importante para los pilotos porque el color rojo no destruye la adaptación natural de la visión del ojo como lo hacen otros colores).
- Cómo adjuntar un PDF a un correo electrónico de la aplicación Android - El tamaño del archivo es cero
- Cómo obtener el valor RGB de código de color hexadecimal en java
- Conexión de Android a PC vía USB
- Appium no puede obtener datos de atributo "content-desc"
- ¿Es posible hacer una consulta sin procesar en la base de datos de metales de Android de meta sqlite?
¿Cuál es la mejor manera de hacer esto? He encontrado APIs como ColorFilter
, etc., pero no estoy seguro de cómo aplicar estas aplicaciones en todo.
- Best REST Client Framework / Utilidad en Android
- Cómo hacer invisible una vista de texto
- Cómo eliminar algunas palabras de una cadena en java
- Añade más espacio entre los elementos de Android Spinner sin estilo personalizado?
- Biblioteca "libmaliinstr.so" no encontrada ... en eclipse
- Error: Error interno: (java.lang.NoSuchMethodError) que afecta a todos mis proyectos
- Importar el R.java de phonegap a mi plugin?
- Selección de la intención de la carpeta y el trabajo cuando la intención completa?
Si usted está hablando simplemente de cambiar los colores de las diversas vistas dentro del diseño y no de la estructura del diseño sí mismo, entonces sugeriría que usted lo hace simplemente usando estilos.
Definir dos conjuntos de estilos para las diferentes vistas que componen su diseño – un conjunto para el modo de noche y uno para el modo de día. En su actividad, se convierte en un caso de llamada a setStyle()
en cada una de sus vistas para alternar entre la noche y el día.
Llegar con una convención de nomenclatura sensible y esquema de la paternidad para sus estilos hará su vida mucho más fácil. Por ejemplo MyText.Large
vs MyText.Large.Night
.
El desarrollador de Android doc sobre temas y estilos es un buen punto de partida.
Crear un tema del día y de la noche y fijarlo programáticamente trabajaría. Pero también le exige duplicar sus estilos, apenas para especificar diversos drawables / colors.
En su lugar, puede mantener un estilo y utilizar Android construido en el modo día / noche de apoyo. Así como puede tener múltiples variaciones de un solo diseño (para orientaciones de pantalla horizontal o vertical), dibujable (para diferentes densidades de píxeles) y cadena (para diferentes locales), también puede tener versiones diurnas y nocturnas de sus colores y dibujos. Los especificadores son "-night" y "-notnight", pero es probable que desee usar "-night" o nada, haciendo que su versión de día sea la predeterminada. Por ejemplo:
res/drawable/fancy-button-background.9.png res/drawable-night/fancy-button-background.9.png
Android debe ser capaz de cambiar el modo día / noche de forma automática, pero los detalles sobre cómo y cuando eso sucede son un poco poco claro para mí. Para cambiar el modo usted mismo, puede usar UiModeManager#setNightMode()
. Sólo asegúrese de activar el modo de coche primero, utilizando enableCarMode(0)
.
- Biblioteca vinculada dinámica de Android no puede resolver símbolos del programa principal
- Actualización de la interfaz de usuario de hilo de fondo utilizando código nativo enteramente (sin JNI)?