Cambiar una aplicación completa a los archivos alternativos "styles.xml" en tiempo de ejecución?

Mi aplicación tiene un archivo styles.xml con varias constantes visuales definidas.

Quisiera que mis usuarios pudieran cambiar la aplicación entera a un tema visual alternativo. Me gustaría proporcionar un archivo styles2.xml alternativo y cambiarlo en tiempo de ejecución (a través de la configuración).

¿Es esto posible, y cómo? Sospecho que la apariencia de los nombres de estilo en la clase R generada no es un buen presagio.

Si no es posible, ¿cuál es mi próxima mejor opción?

No estoy seguro de si alguien todavía está interesado, pero he encontrado una posible solución. Un poco hackish pero obtiene el resultado deseado. Básicamente, configuro mis 2 archivos de estilo en directorios de código de país separados:

 res/values-mcc199/style.xml res/values-mcc198/style.xml 

Luego, en mi actividad, utilizo lo siguiente para cambiar lo que se hace referencia:

 Configuration config = new Configuration(); config.mcc = 199; getBaseContext().getResources().updateConfiguration(config,null); 

Sólo he hecho algunas pruebas básicas hasta ahora, pero parece que funciona. Obviamente, si ya está utilizando código de país para decidir sus diseños, entonces esto interferirá. Creo que puede haber problemas también si el teléfono recibe un evento sobre un cambio de país.

En realidad, después de leer el documento, parece que esto se puede hacer. Mira aquí. Como se menciona:

Para crear un conjunto de estilos, guarde un archivo XML en el directorio res / values ​​/ de su proyecto. El nombre del archivo XML es arbitrario, pero debe usar la extensión .xml y ser guardado en la carpeta res / values ​​/.

Ahora bien, si esto es lógico y no he leído el documento incorrectamente, puedes crear tantos estilos como quieras, hacer referencia a ellos en themes.xml con @style / … (si quieres aplicarlo a toda una actividad O aplicación) y luego, simplemente llame

SetTema (R. suyema)

Creo que esto debería funcionar. ¿Tiene un ir en él y nos dice?

¡Lo conseguí finalmente!

Nuestra respuesta está aquí: http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html

R.

No es una respuesta exacta; En mi blog aquí:

http://blog.blundell-apps.com/switching-android-configurations-using-constants-and-ant/

Cambiar una clase java en el tiempo de construcción usando Ant, no hay nada que le impida cambiar un archivo XML, ya que compila después del interruptor. Para modificar el tutorial sólo tendría que cambiar la ruta del archivo de su plantilla.

También se refleja en GitHub: https://github.com/blundell/BuildChoiceTut

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.