Changer la couleur d'arrière-plan Menu android [double]
-
01-10-2019 - |
Question
Cette question a déjà une réponse ici:
Je suis en train de changer le gris clair standard à un vert clair. Il semble qu'il n'y a pas un moyen simple de le faire (par Android Thèmes, par exemple), mais je l'ai trouvé une solution de contournement comme expliqué à cette page:
La solution ur gonflent l'appel du menu de cette méthode de setMenuBackground () et écrire cette dans le procédé setMenuBackground () @Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu,menu);
setMenuBackground();
return true;
}
protected void setMenuBackground(){
// Log.d(TAG, "Enterting setMenuBackGround");
getLayoutInflater().setFactory( new Factory() {
public View onCreateView(String name, Context context, AttributeSet attrs) {
if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {
try { // Ask our inflater to create the view
LayoutInflater f = getLayoutInflater();
final View view = f.createView( name, null, attrs );
/* The background gets refreshed each time a new item is added the options menu.
* So each time Android applies the default background we need to set our own
* background. This is done using a thread giving the background change as runnable
* object */
new Handler().post( new Runnable() {
public void run () {
// sets the background color
view.setBackgroundResource( R.color.androidcolor);
// sets the text color
((TextView) view).setTextColor(Color.BLACK);
// sets the text size
((TextView) view).setTextSize(18);
}
} );
return view;
}
catch ( InflateException e ) {}
catch ( ClassNotFoundException e ) {}
}
return null;
}});
}
Autres conseils
Ceci est clairement un problème que beaucoup de programmeurs ont et auquel Google n'a pas encore fourni une satisfaisante solution pris en charge.
Le setMenuBackground () bidouille qui Abhay Kumar et Nik Reiman posté est un bon début, mais il se bloque ou soit ne fonctionne pas sur Android 2.3.
S'il vous plaît voir ma réponse (Louis Semprini) dans cette question stackoverflow pour mieux commenté et plus raffiné bidouille que les travaux sur les 2.1, 2.2 et 2.3 (et qui devrait ne pas nuire à 3.X, bien que nous ne pouvons jamais garantir cette ):
Comment changer la couleur d'arrière-plan des options Menu
En outre, voici de nombreuses autres ressources que vous pouvez trouver utile pour cette question:
Changer la couleur d'arrière-plan Menu android
Android: Menu de l'application de personnalisation (par exemple, la couleur d'arrière-plan)
http://www.macadamian.com/blog/post/android_- _theming_the_unthemable /
Android MenuItem Bouton bascule
Est-il possible de faire l'arrière-plan du menu d'options Android non-translucide
http://www.codeproject.com/KB/android/AndroidMenusMyWay.aspx
Utilisez le setMenuBackground dans onCreate.