webentwicklung-frage-antwort-db.com.de

Android: Hintergrundfarbe der Aktivität ändern (Hauptansicht)

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. 

22
moritzg

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.

57
Squonk

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>
9
youssoua

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.

7
Rakesh Gujari

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. 
3
Xar E Ahmer

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 :)

1
Maciej Musialek

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

0
RizN81