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.

¿Cómo puedo hacer esto?

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.

  • App crash cuando android: el tema se aplica a un botón específico
  • Tostar el fondo cambiando para que coincida con el tema de la actividad
  • Obtener valores de atributo predeterminados de un tema de Android en tiempo de ejecución?
  • java.lang.UnsupportedOperationException: No se puede convertir a dimension: type = 0x12
  • Cambiar el color de la barra de acciones de Android 5.0
  • Android: cambia TextView textColor cuando el padre está enfocado
  • Deje que el usuario elija un tema
  • El tema del diálogo Android hace que el icono sea demasiado claro
  • Eliminar el efecto sombra en el botón android
  • Cómo cambiar el tema de AlertDialog
  • ¿Por qué es tan complejo configurar estilo de código en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.