web-dev-qa-db-fra.com

Android: Modification de la couleur de fond de l'activité (vue principale)

Je veux changer la couleur de fond de ma vue principale (pas un bouton ni une vue texte), mais uniquement du fond réel qui est généralement noir ... J'ai ce code:

view.setBackgroundColor(0xfff00000);

C'est à l'intérieur d'une OnClickListener, mais cela ne fait que changer l'arrière-plan du bouton. 

22
moritzg

Essayez de créer une méthode dans votre Activity quelque chose comme ...

public void setActivityBackgroundColor(int color) {
    View view = this.getWindow().getDecorView();
    view.setBackgroundColor(color);
}

Puis appelez-le à partir de votre OnClickListener en passant la couleur que vous voulez.

57
Squonk

je ne sais pas si c'est la réponse à votre question, mais vous pouvez essayer de définir la couleur d'arrière-plan de la mise en page XML comme ceci. C'est facile, ça marche toujours

<?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>

Vous pouvez également créer davantage de fantaisies avec les arrière-plans en créant un fichier d’arrière-plan XML contenant des dégradés froids et semi-transparents.

la mise en page background.xml

<?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>

votre mise en page

<?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

Ajoutez simplement ce code sous une ligne dans le fichier XML de l’activité correspondante:

Android:background="@Android:color/black" 

cela vous aidera à coup sûr.

7
Rakesh Gujari

Première méthode  

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

Deuxième méthode

Ajouter cette seule ligne après setContentView (...);

getWindow().getDecorView().setBackgroundColor(Color.WHITE);

Troisième méthode  

définir la couleur de fond du rootView

<?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>

Chose importante

rootView.setBackgroundColor(0xFF00FF00); //after 0x the other four pairs are alpha,red,green,blue color. 
3
Xar E Ahmer

Vous pouvez également essayer de fournir un identifiant pour la mise en page principale et d'en modifier l'arrière-plan par le biais d'une manipulation et d'une récupération de base. Par exemple:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/hello"

Ce qui peut ensuite être suivi en accédant via R.id.hello .... Assez basique et j'espère que cela aide :)

1
Maciej Musialek

si vous mettez votre code complet ici pour que je puisse vous aider. Si vous définissez l'écouteur en XML et appelez la couleur d'arrière-plan définie dans View pour qu'il change la couleur d'arrière-plan de la vue, cela signifie que vous êtes Botton, mettez donc votre auditeur dans votre activité et changez la couleur de votre vue.

0
RizN81