Autore Topic: cambiare il colore nel option menù  (Letto 2581 volte)

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 128
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
cambiare il colore nel option menù
« il: 05 Ottobre 2010, 21:57:27 CEST »
0
vorrei cambiare il colore con cui vengono evidenziati gli elementi del option menù,ho trovato in rete degli esempi in cui riescono a cambiare il colore dello sfondo richiamando l'attributo setBackgroundResource della classe View,ma non ho trovato nessun attributo,nella stessa classe, che faccia riferimento al colore del evidenziazione...avete qualche consiglio?Bye.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:cambiare il colore nel option menù
« Risposta #1 il: 06 Ottobre 2010, 00:01:41 CEST »
+2
Crea un drawable con all'interno questo codice e assegnalo come background al tuo option menu:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" />

    <!-- Pressed -->
    <item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>

Per i vari stati definisci i singoli drawable da utilizzare e sei apposto ;)

Drawable Resources | Android Developers

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 128
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:cambiare il colore nel option menù
« Risposta #2 il: 06 Ottobre 2010, 23:41:53 CEST »
0
ciao,solo ora ho avuto tempo per fare delle prove,e il metodo che mi hai suggerito funziona egregiamente  :-)
qua il codice che ho usato per settare lo sfondo:
Codice (Java): [Seleziona]
getLayoutInflater().setFactory( new Factory() {

@Override
public View onCreateView ( String name, Context context, AttributeSet attrs ) {

    if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {

        try {
            LayoutInflater f = getLayoutInflater();
            final View view = f.createView( name, null, attrs );
            new Handler().post( new Runnable() {
                public void run () {
                    view.setBackgroundResource( R.drawable.custom_menu);
                }
            } );
            return view;
        }
        catch ( InflateException e ) {}
        catch ( ClassNotFoundException e ) {}
    }
    return null;
}
});
}
grazie ancora ;) Bye.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:cambiare il colore nel option menù
« Risposta #3 il: 06 Ottobre 2010, 23:46:49 CEST »
0

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 128
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:cambiare il colore nel option menù
« Risposta #4 il: 07 Ottobre 2010, 09:51:46 CEST »
0
:D avevo usato la funzione cerca del forum prima di postare ma mi sa che avevo sbagliato chiavi di ricerca,starò più attento,Bye.  :-)