Android - wie man die Hintergrundfarbe aller Bildschirme einstellt?

77

Was ist die beste Vorgehensweise, um Schrift- und Farbstile beizubehalten? Ich habe eine color.xml-Datei erstellt, mit der ich die Farben für separate Elemente wie Schaltflächen geändert habe, bin mir jedoch nicht sicher, wie Android möchte, dass Entwickler ihre Stile organisieren.

Zum Beispiel möchte ich, dass alle Bildschirme die gleiche Hintergrundfarbe haben. Wie mache ich das? Muss ich das für jede Aktivitätslayout-XML angeben? Oder woanders? Wie schaffe ich das?

GeekedOut
quelle
Sie erstellen Stile und wenden sie auf Ihre UI-Elemente an
zapl
@zapl rigth es ist was ich tat. Ich habe mich gefragt, wie ich einen Stil auf den gesamten Bildschirm anwenden kann. Wie eine Hintergrundfarbe für jeden Bildschirm?
GeekedOut
Sie können entweder ein Hintergrundthema auf jedes oberste LinearLayout anwenden (oder was auch immer Sie verwenden) oder Sie können dies über ein Thema für Ihre Aktivität
tun
@zapl oh ja das hilft! Vielen Dank!
GeekedOut

Antworten:

195

Eine schnelle und einfache Möglichkeit, um sicherzustellen, dass jede Aktivität dieselbe Hintergrundfarbe hat, besteht darin, ein Thema für Ihre Aktivitäten zu erstellen. Dieses Thema würde den Android angeben: windowBackground.

Definieren Sie zuerst die Farbe in values ​​/ color.xml

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

Erstellen Sie eine Datei theme.xml in res / values, die auf diese Farbe verweist:

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

... und geben Sie dies dann in Ihrer AndroidManifest.xml als Thema für Ihre Aktivitäten an.

 <activity
        android:name=".MyActivity"
        android:theme="@style/MyTheme" />
NPike
quelle
4
Ich habe beim Implementieren dieses Codes in der Datei theme.xml einen Fehler erhalten, da der hexadezimale Farbcode hier nicht erkannt wird: <item name = "android: windowBackground"> ​​# FF0000 </ item>
Brian J
9
Fügen Sie einfach das Farbhex in eine @ colour-Ressource ein und verweisen Sie dann auf <item name = "android: windowBackground"> ​​@ color / my_background </ item>
Chris.D
2
Das ist nicht die richtige Antwort. Bitte korrigieren Sie Ihre Antwort, um Chris 'Kommentar zu entsprechen. NPike
Joris Weimar
Bearbeiten Sie styles.xmlstattdessen den Stil in .
Jakub Bláha
windowBackground hat keine Auswirkung. Ich denke, diese Flagge dient nur zum Setzen / Ändern von Zeichen, nicht von Farben!
27.
20

Aktualisieren Sie Ihr Android Studio auf 1.4, es hat eingebauten Theme Editor. wie Sie im Bild unten sehen können

Geben Sie hier die Bildbeschreibung ein

Kundan Roy
quelle
2
wie man Theme Editir in Android 2.1 Vorschau-Version öffnet
Sonu Kumar
Öffnen Sie die Datei styles.xml und Sie sehen, dass sie im Editortext oben rechts geöffnet ist. Klicken Sie darauf.
Kundan Roy
Aber mein Fall verstecken und Problem lösen es beim Neustart von Android Studio danke Show zeigen
Sonu Kumar
1
Um es zu öffnen, gehen Sie zu Extras -> Android -> Themeneditor.
Albert Vila Calvo
3
Der Editor hat keine Unterstützung mehr. Seit Android Studio 3.3 wird es entfernt.
Finder2
8

Sie können den Hintergrund auch auf Anwendungsebene in AndroidManifest.xml festlegen

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

(Hinweis: Ich kann dies nicht als Kommentar zur akzeptierten Antwort verwenden, da mein Ruf zu niedrig ist.)

chris
quelle