Android: Anpassung der Anwendung Menü (zB Hintergrundfarbe)

Was ist der Weg (wenn es einen Weg gibt), um das Menü anzupassen (das, das durch die MENU-Taste des Telefons ausgelöst wird). Ich interessiere mich besonders für zwei Dinge:

  • Ändern der Hintergrundfarbe vom Standard hellgrau in ein dunkleres Grau
  • Wie die Menüpunkte ausgerichtet sind. Ich habe 4 Items und sie sind automatisch ausgerichtet 2×2, aber ich würde es vorziehen, sie alle in einer Zeile (1×4)

  • Kann nicht import import android.hardware.camera2 Klassen
  • ERROR: Anwendung erfordert API Version 14. Geräte-API-Version ist 13 (Android 3.2.1)
  • Google Orte api Symbole Liste
  • Die Anzahl der Methodenreferenzen in einer .dex-Datei darf 64k API 17 nicht überschreiten
  • Holen Sie sich Caps Lock State in Android
  • 'App not Installed' Fehler auf Android
  • Empfangen von POST-Anforderung auf Server (Spring Framework) von Android-Anwendung
  • Schriftart Awesome funktioniert nicht auf Android Browser
  • Kann nicht Programm "xx / sdk // tools / emulator": java.io.IOException: error = 2, keine solche Datei oder Verzeichnis
  • Wie man Android's nativen Browser (nicht Chrome) auf einem Desktop-Computer zu debuggen?
  • AudioSource-Wert für USB-Mikrofon auf Android
  • Android: Geräte-Dichte wird als Null von einigen Geräten zurückgegeben
  • 6 Solutions collect form web for “Android: Anpassung der Anwendung Menü (zB Hintergrundfarbe)”

    Nicht mit dem eingebauten Menürahmen.

    Sie sind herzlich onKeyDown() , die MENU-Taste (über onKeyDown() oder etwas abzufangen) und machen, was Sie wollen, aber bedenken Sie, dass die Benutzer erwarten, dass es aussieht wie der Rest der Menüs auf ihrem Gerät zu tun.

    Ich habe meine eigene Menüklasse erstellt. Vielleicht ist es nicht genau das, was du willst, aber es soll dir hoffentlich anfangen. Hier ist der Artikel, den ich veröffentlicht habe, und einen herunterladbaren Link zum Quellcode.

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

    Sie können auch einfach die "onCreateOptionsMenu" -Methode implementieren, die normalerweise verwendet wird, um das Standardmenü anzuzeigen und anzuzeigen, was auch immer Sie in diesem Fall wünschen.

    In meinem Spiel habe ich es implementiert, um ein Dialogfeld "Game Paused" anzuzeigen, wenn die Menütaste gedrückt wird …

    Verwenden Sie Stile. Das funktioniert für mich auf Android 5.0

     <style name="AppTheme" parent="android:Theme.Material.Light"> <item name="android:colorPrimary">@color/primary</item> <item name="android:actionOverflowMenuStyle">@style/PopupMenu.MyStyle</item> </style> <style name="PopupMenu.MyStyle" parent="android:Widget.PopupMenu"> <item name="android:popupBackground">@drawable/actionbar_item_background</item> </style> 

    … dann ist das Ziehbare ein regelmäßiger Selektor

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/primary"/> <item android:drawable="@color/highlighted" android:state_pressed="true"/> </selector> 

    Hintergrundmenü Farbe in style.xml in deinem Thema

     <item name="android:panelFullBackground">@android:color/darker_gray</item> 

    Diese Antwort funktioniert, aber stürzte für mich bei der Verwendung von ActionBarSherlock. Hier ist ein hackiger Workaround, um diese Arbeit trotzdem zu machen.

      // Black Vodoo! Do not try this at home. final LayoutInflater li = getLayoutInflater(); final Class<LayoutInflater> clazz = LayoutInflater.class; try { final Field fieldSet = clazz.getDeclaredField("mFactorySet"); fieldSet.setAccessible(true); fieldSet.setBoolean(li, false); li.setFactory(new Factory() { @Override public View onCreateView(final String name, final Context context, final AttributeSet attrs) { if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) { try { final LayoutInflater f = getLayoutInflater(); final View view = f.createView(name, null, attrs); new Handler().post(new Runnable() { @Override public void run() { // Set the text color ((TextView) view).setTextColor(Color.WHITE); } }); return view; } catch (final Exception e) { } } return null; } }); } catch (final Exception e) { e.printStackTrace(); } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.