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