2011-09-13 14 views
5

Chciałbym móc zadeklarować niektóre motywy, aby łatwo zmienić wygląd mojej aplikacji. Dostaję więc, że możesz zdefiniować dziedziczenie stylu z androida: Theme, a następnie zdefiniować atrybuty w tym.Motywy: Rysowanie zależne od motywu?

Ale dwa pytania:

  1. Co jeśli chcę mieć, powiedzmy, więcej niż jeden kolor tła dla różnych widoków w aplikacji? Tak, że mogę mieć, na przykład, tło dla całej aktywności i innego tła dla widoków tekstu w działaniu i innego tła dla przycisków itp. Ale czy mają one zależne od tych (różnych) kolorów?
  2. Czy można zdefiniować zestaw rysunków, który zależy od używanego motywu. Mam na myśli w podobny sposób, jak na przykład możesz definiować różne rysunki dla różnych gęstości ekranu. Idealnie byłoby mieć obrazy o różnych schematach kolorów używanych do różnych tematów. Czy to zachowanie można zdefiniować w systemie Android?

Dzięki za pomoc, James

+0

Wszystkie potrzebne informacje znajdują się na http://developer.android.com – Merlin

Odpowiedz

3

Można tylko określić różne style dla różnych kolorach lub kanału alfa wymaganych dla danego typu widget i odnoszą się do tych w swoich różnych tematów. Na przykład:

<!-- 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

Dziękuję. Uzupełniłem to także definiując niestandardowe atrybuty w pliku attr. –

+0

dziękuję za dyrektywę "android: windowBackground", szukałem tego. używając Androida: tło zastosuje tło do wszystkich widżetów, co nie jest tym, czego chcę. – Yenchi

Powiązane problemy