2011-09-13 14 views
5

Me gustaría poder declarar algunos temas para cambiar fácilmente la apariencia de mi aplicación. Así que entiendo que puedes definir un estilo que hereda de android: Theme y luego definir atributos dentro de esto.Temas: ¿Dependiente del tema?

Sin embargo, dos preguntas:

  1. ¿Qué pasa si quiero tener, por ejemplo, más de un color de fondo para diferentes puntos de vista dentro de la aplicación? Para que pueda tener, por ejemplo, un trasfondo de toda la actividad y un fondo diferente para las vistas de texto en la actividad y otro fondo para botones, etc. ¿Pero entonces tienen estos (diferentes) colores dependiendo del tema?
  2. ¿Es posible definir un conjunto de herramientas que depende del tema en uso. Me refiero de manera similar a cómo se pueden definir diferentes formas para diferentes densidades de pantalla, por ejemplo. Lo ideal sería tener imágenes con diferentes esquemas de colores utilizados para los diferentes temas. ¿Se puede definir este comportamiento en android?

Gracias por su ayuda, James

+0

Toda la información que necesita está en http://developer.android.com – Merlin

Respuesta

3

Se podía definir diferentes estilos para los diferentes colores o dibujables requeridos para cada tipo de widget y se refieren a los de sus diversos temas. Por ejemplo:

<!-- themes --> 

<style name="MyTheme" parent="android:style/Theme.Light"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowBackground">@drawable/something</item> 
    <item name="android:buttonStyle">@style/MyButton</item> 
</style> 

<style name="MyTheme.Red"> 
    <item name="android:buttonStyle">@style/MyButton.Red</item> 
</style> 

<style name="MyTheme.Blue"> 
    <item name="android:buttonStyle">@style/MyButton.Blue</item> 
</style> 

<!-- styles --> 

<style name="MyButton" parent="android:style/Widget.Button"> 
    <item name="android:background">@drawable/btn_mydefault</item> 
</style> 

<style name="MyButton.Red"> 
    <item name="android:background">@drawable/btn_red</item> 
</style> 

<style name="MyButton.Blue"> 
    <item name="android:background">@drawable/btn_blue</item> 
</style> 
+0

Gracias. Completé esto también definiendo atributos personalizados en el archivo attr. –

+0

gracias por la directiva "android: windowBackground", estaba buscando esto. usando Android: fondo aplicará el fondo dibujable a todos los widgets que no es lo que quiero. – Yenchi