2012-04-14 20 views
50

Uczę się Androida i do tej pory skupiałem się na funkcjonalności, ale teraz zaczynam pracować z układami.Android - jak ustawić kolor tła wszystkich ekranów?

Zastanawiam się, jaka jest najlepsza praktyka w utrzymywaniu stylów czcionek i kolorów. Zrobiłem plik colors.xml, którego użyłem do zmiany kolorów na osobnych elementach, takich jak przyciski, ale nie jestem pewien, jak Android chce, aby programiści organizowali swoje style.

Na przykład chciałbym, aby wszystkie ekrany miały ten sam kolor tła. Jak mogę to zrobić? Czy jest to coś, co muszę określić dla każdego xml układu zajęć? Lub gdzie indziej? Jak mogę to zrobić?

Dzięki!

+0

utworzyć [style] (http://developer.android.com/guide/topics/ui/themes.html) i stosuje je do elementów UI – zapl

+0

@ zapl rigth to, co robiłem. Zastanawiałem się, jak zastosować styl na całym ekranie. Jak kolor tła dla każdego ekranu? – GeekedOut

+0

możesz zastosować motyw tła do każdego najwyższego LinearLayout (lub cokolwiek innego używasz) lub możesz to zrobić za pomocą [motywu swojej aktywności] (http://developer.android.com/guide/topics/ui/themes. html # ApplyATheme) – zapl

Odpowiedz

134

Szybki i łatwy sposób, aby upewnić się, że każda czynność ma ten sam kolor tła, to stworzenie motywu do wykorzystania w swoich działaniach. Temat ten określałby android: windowBackground.

najpierw zdefiniować kolor w wartościach/colors.xml

<resources> 
    <color name="background">#FF0000 </color> 
</resources> 

Utwórz plik themes.xml w RES/wartości, która odwołuje się ten kolor:

<resources> 
<style name="MyTheme" parent="@android:style/Theme.Light"> 
    <item name="android:windowBackground">@color/background</item> 
</style> 
</resources> 

... a potem w swojej AndroidManifest.xml określa to jako motyw dla twoich działań do użycia.

<activity 
     android:name=".MyActivity" 
     android:theme="@style/MyTheme" /> 
+3

Wystąpił błąd podczas implementacji tego kodu w pliku themes.xml, ponieważ nie rozpoznaje tu kodu koloru szesnastkowego: ​​# FF0000 –

+7

po prostu umieść kolor heks w @ zasób koloru, a następnie odwołaj go w ten sposób ​​@ color/my_background –

+1

to nie jest właściwa odpowiedź. proszę poprawić odpowiedź, aby dopasować komentarz Chris NPike –

5

Można również ustawić tło na poziomie aplikacji w AndroidManifest.xml

<application 
    ... 
    android:theme="@style/MyTheme"> 

(uwaga: nie mogę tego jako komentarz z przyjętą odpowiedzi jak moja reputacja jest zbyt niska).

17

Zaktualizuj swoje studio na Androida do wersji 1.4 posiada wbudowany edytor motywów. jak widać poniżej obrazu

enter image description here

+1

jak otworzyć Theme Editir w Android 2.1 wersja podglądu –

+0

otworzyć plik styles.xml, a zobaczysz otwarty w edytorze tekst w prawym górnym rogu kliknij na to. –

+0

Ale moja sprawa ukryć i problem rozwiązać po ponownym uruchomieniu Android studio dziękuję pokazać mach –