Elegir un estilo / tema mediante programación en tiempo de ejecución
Tengo el dispositivo A y el dispositivo B.
Puedo detectar fácilmente si la aplicación se está ejecutando en el dispositivo A o en el dispositivo B. Ahora lo que necesito es utilizar el tema (estilos) para el dispositivo A y otros en el dispositivo B.
- Problema de Android con la implementación de temas personalizados
- No apuntar a las últimas versiones de Android
- ¿Cómo usar los iconos y la plantilla incorporados?
- Cómo aplicar un tema dependiendo de la versión de Android
- Cómo cambiar el tema actual en tiempo de ejecución en Android
¿Cómo puedo hacer esto?
- ¿Cómo se elimina la línea / sombra del separador entre la barra de estado y la pantalla principal?
- Modificación del diseño del título de diálogo en Android
- Android: Theme Holo versión anterior
- Cómo extraer valores de color (#rgb) de un tema de Android?
- Establecer tema personalizado en la lista de preferencias de Android
- Android: Cómo configurar el color del texto para los elementos de la lista en AlertDialog correctamente
- Cómo cambiar el color detrás de Android Dialog
- ¿Cómo puedo convertir un diseño PSD a Android xml?
En su Activity.onCreate (), puede llamar a setTheme () para establecer el tema que desea utilizar. Tenga en cuenta que esto debe hacerse antes de llamar a setContentView () o de otra manera crear su interfaz de usuario.
Tenga en cuenta que cuando el usuario inicie su aplicación, el sistema mostrará una vista previa de ella mientras esto sucede. Este anterior se basa en la creación de una ventana que coincida con el tema declarado en su manifiesto. Desea que esto coincida lo más posible con los temas que va a configurar en su onCreate () para hacer la transición a su aplicación tan suave como sea posible.
Si desea que su tema varíe en función de la configuración de algunos dispositivos, como la versión de la plataforma o el tamaño de la pantalla, puede hacerlo a través de los recursos. Simplemente declare diferentes versiones de su tema para las diferentes configuraciones que desee. El diseño del archivo sería algo como:
values/ styles.xml # Required default theme values-v11/ styles.xml # Theme when running on Android 3.0 or higher values-xlarge/ styles.xml # Theme when running on an xlarge screen
El -v11 le permite tener una versión del tema que utiliza un nuevo tema cuando se ejecuta en plataformas más nuevas mientras se vuelve a algo compatible en las versiones anteriores. Por ejemplo, en el estilo de valores-v11, el padre de tu tema podría ser el nuevo @android: style / Theme.Holo, mientras que el básico heredaría del antiguo @android: style / Theme.
También Android 3.0 te da una manera de cambiar tu tema en tiempo de ejecución, pidiendo que tu actividad se reinicie como cuando ocurre un cambio de configuración: http://developer.android.com/reference/android/app/Activity.html#recreate ( )
Después de llamar a eso, la nueva instancia de la actividad que se crea puede llamar a setTheme () con un valor diferente (basado, por ejemplo, en la información del estado de la instancia guardada o una preferencia compartida) que el tema que se estaba utilizando anteriormente.