Ich möchte die Hintergrundfarbe meiner Hauptansicht (nicht eines Buttons oder einer Textansicht) nur den tatsächlichen Hintergrund ändern, der normalerweise schwarz ist ...
view.setBackgroundColor(0xfff00000);
Dies ist in OnClickListener
enthalten, ändert jedoch lediglich den Hintergrund des Buttons.
Versuchen Sie, eine Methode in Ihrer Activity
zu erstellen.
public void setActivityBackgroundColor(int color) {
View view = this.getWindow().getDecorView();
view.setBackgroundColor(color);
}
Rufen Sie es dann von Ihrem OnClickListener in beliebiger Farbe auf.
ich weiß nicht, ob dies die Antwort auf Ihre Frage ist, aber Sie können versuchen, die Hintergrundfarbe im XML-Layout so einzustellen. Es ist einfach, es funktioniert immer
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="0xfff00000"
>
<TextView
Android:id="@+id/text_view"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/hello"
/>
</LinearLayout>
Sie können auch mehr ausgefallene Dinge mit Hintergründen ausführen, indem Sie eine XML-Hintergrunddatei mit coolen und halbtransparenten Farbverläufen erstellen.
das background.xml-Layout
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape>
<gradient
Android:angle="90"
Android:startColor="#f0000000"
Android:endColor="#ff444444"
Android:type="linear" />
</shape>
</item>
</selector>
ihr Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@layout/background"
>
<TextView
Android:id="@+id/text_view"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/hello"
/>
</LinearLayout>
Fügen Sie diesen unter einem Zeilencode in die XML-Datei der entsprechenden Aktivität ein:
Android:background="@Android:color/black"
es wird dir sicher helfen.
Erste Methode
View someView = findViewById(R.id.randomViewInMainLayout);// get Any child View
// Find the root view
View root = someView.getRootView()
// Set the color
root.setBackgroundColor(getResources().getColor(Android.R.color.red));
Zweite Methode
Fügen Sie diese einzelne Zeile nach setContentView (...) hinzu.
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
Dritte Methode
hintergrundfarbe für das rootView festlegen
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="#FFFFFF"
Android:id="@+id/rootView"
</LinearLayout>
Wichtige Sache
rootView.setBackgroundColor(0xFF00FF00); //after 0x the other four pairs are alpha,red,green,blue color.
Sie können auch versuchen, eine ID für das Hauptlayout anzugeben und den Hintergrund durch grundlegende Bearbeitung und Abruf zu ändern. Z.B:
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/hello"
Dem kann dann durch Zugriff auf R.id.hello gefolgt werden ... Ziemlich grundlegend und ich hoffe, dass dies hilft :)
wenn Sie Ihren vollständigen Code hier eingeben, kann ich Ihnen helfen. Wenn Sie den Listener in XML festgelegt haben und die festgelegte Hintergrundfarbe in View aufrufen, wird die Hintergrundfarbe der Ansicht geändert. Dies bedeutet, dass es sich um Botton handelt, also setzen Sie Ihren Listener in ur-Aktivität und ändern Sie dann die Farbe Ihrer Ansicht