Cambiare il colore di background del menu android

Sto provando a cambiare il grigio chiaro standard in un verde chiaro. Sembra che non esista un modo semplice per farlo (per esempio con Android Themes) ma ho trovato una soluzione alternativa come spiegato in questa pagina: http://tinyurl.com/342dgn3 .

L'autore sembra scomparso, qualcuno può aiutarmi ad integrare questo codice? Non capisco where ho bisogno di implementare la class di fabbrica LayoutInflater .

  • Android: scrittura non rioutput: EPIPE (pipe rotto) Errore nel file di scrittura
  • Riproduce il suono nell'altoparlante sinistro o destro usando android AudioTrack
  • Come aggiungere elementi del sottomenu all'azione ActionBar nel codice?
  • Come rilevare lo zoom in pugno dello android in javascript
  • Le immagini esterne nel model di tabulazione predefinita ionica non verranno caricate nell'emulatore e sul dispositivo
  • Come accedere al database usando il divario del telefono
  • Accendere le opzioni dello sviluppatore su Galaxy S4
  • Come creare un file excel in android?
  • Android - Disegna Bitmap all'interno della canvas
  • Differenza tra SparseArray Vs ArrayList?
  • Imansible importre un nuovo progetto Gradle: Imansible recuperare il model di tipo 'IdeaProject'
  • Problemi di connessione con Bluetooth Android
  • 3 Solutions collect form web for “Cambiare il colore di background del menu android”

    Quando ur sono gonfiando il menu call questo metodo setMenuBackground ()

     @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.menu,menu); setMenuBackground(); return true; } 

    e scrivere questo nel metodo setMenuBackground ()

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

    Questo è chiaramente un problema che molti programmatori hanno e che Google deve ancora fornire una soluzione soddisfacente e supportta.

    Il setMenuBackground () hack che Abhay Kumar e Nik Reiman hanno inviato è un buon inizio, ma si blocca o non funziona su Android 2.3.

    Si prega di vedere la mia risposta (Louis Semprini) in questa domanda di stackoverflow per un hack meglio commentato e raffinato che funziona a 2.1, 2.2 e 2.3 (e che non dovrebbe fare alcun male per 3.X, anche se non possiamo mai garantire questo):

    Come modificare il colore di background del menu delle opzioni?

    Inoltre, qui ci sono molte altre risorse che potrebbero essere utili per questa domanda:

    Cambiare il colore di background del menu android

    Android: personalizza il menu dell'applicazione (ad es. Colore di background)

    http://www.macadamian.com/blog/post/android_-_theming_the_unthemable/

    Pulsante Toggle di MenuItem per Android

    È ansible rendere il background del menu delle opzioni Android non trasshiny?

    http://www.codeproject.com/KB/android/AndroidMenusMyWay.aspx

    Impostare lo background del menu per essere opaco

    Utilizzare il setMenuBackground in onCreate.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.