Wie kann ich die Hintergrundfarbe einer Aktivität programmgesteuert auf Weiß einstellen?
128
Wie kann ich die Hintergrundfarbe einer Aktivität programmgesteuert auf Weiß einstellen?
Holen Sie sich ein Handle für das verwendete Root-Layout und legen Sie die Hintergrundfarbe darauf fest. Das Root-Layout ist das, mit dem Sie setContentView aufgerufen haben.
setContentView(R.layout.main);
// Now get a handle to any View contained
// within the main layout you are using
View someView = findViewById(R.id.randomViewInMainLayout);
// Find the root view
View root = someView.getRootView();
// Set the color
root.setBackgroundColor(getResources().getColor(android.R.color.red));
root.setBackgroundColor(getResources().getColor(android.R.color.red));
Fügen Sie diese einzelne Zeile nach dem
setContentView()
Anruf in Ihre Aktivität einquelle
Ich bevorzuge es, nach Themen zu färben
quelle
android:windowBackground
für einen kurzen Moment zuerst sichtbar ist und dann die Layout-Hintergrundfarbe übernimmt. Wenn Sie also zwei verschiedene Farben verwenden, flackert es auf dem Bildschirm.windowBackground
Betrifft nur den Fensterhintergrund, aber auchcolorBackground
alle Ansichten. stackoverflow.com/questions/26266221/…Mit anderen Worten, "android: background" ist das Tag in der XML, das Sie ändern möchten.
Wenn Sie den Hintergrundwert dynamisch aktualisieren müssen, gehen Sie wie folgt vor:
Übung: Ändern Sie die Hintergrundfarbe mit SeekBar
quelle
In Ihrer
onCreate()
Methode:Außerdem müssen Sie dem Werteordner eine neue XML-Datei mit dem Namen hinzufügen
color.xml
und dort eine neue Farbeigenschaft zuweisen:color.xml:
Beachten Sie, dass Sie einen
color.xml
beliebigen Namen benennen können , ihn jedoch mit dem Code als bezeichnenR.color.yourId
.BEARBEITEN
Da ist
getResources().getColor()
veraltet, verwenden SiegetWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color));
stattdessen.quelle
Sie können dies verwenden, um vordefinierte Android-Farben aufzurufen:
Wenn Sie eine Ihrer eigenen benutzerdefinierten Farben verwenden möchten, können Sie Ihre benutzerdefinierte Farbe zu strings.xml hinzufügen und dann wie folgt aufrufen.
Wenn Sie jedoch die Farbe in Ihrer layout.xml festlegen möchten, können Sie die folgenden Elemente ändern und zu jedem Element hinzufügen, das sie akzeptiert.
quelle
Um die in Ihrer XML-Datei definierte Stammansicht ohne Aktionsleiste zu erhalten, können Sie Folgendes verwenden:
So ändern Sie die Farbe in Weiß:
quelle
arbeitete für mich. Danke.
quelle
quelle
quelle