2013-07-19 9 views
11

Desidero modificare alcuni colori dei pulsanti globalmente nel mio codice. Non riesco a definire un modo per definire una variabile di colore e quindi assegnare un valore di colore a quella variabile.Definire una variabile di colore personalizzata

Ho provato questo Colore SelectedColor = new Color();

 f1.setBackgroundColor(Color.rgb(0, 0, 100)); 

Desidero utilizzare ColorSelected al posto del valore RGB in modo da poter modificare il valore all'avvio.

  f1.setBackgroundColor(Color.ColorSelected); 
+1

Si prega di leggere la documentazione (o anche i suggerimenti mostrati da eclissi al passaggio del mouse). 'setBackgroundColor()' ha preso un argomento 'integer'. Il modo in cui stai usando 'SelectedColor' (come membro statico di' Color') è sbagliato. Secondo, 'setBackgroundColor' non può prendere l'oggetto' Color' come argomento. Utilizzare invece un ID risorsa. Definisci un colore come suggerito da "cintura nera". Quindi, usa 'f1.setBackgroundColor (getResources(). GetColor (R.color.definedColorName))'. – Vikram

risposta

28

è possibile utilizzare values/colors.xml. Per esempio

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="menu_background">#666666</color> 
</resources> 
+0

Android Studio non aggiunge il file colors.xml quando crea un nuovo progetto, quindi ho aggiunto il mio colore personalizzato a strings.xml, ma quando lo utilizzo come @ string/mycolor l'app si ferma. Ora funziona con colors.xml. –

+1

né Eclipse crea quel file. Il file deve essere creato manualmente, @ JoseManuelAbarcaRodríguez – Blackbelt

7

"non riesco a mettere un modo per definire una variabile colore e quindi assegnare un valore di colore a quella variabile."

Ecco come si può definire una variabile colore:

int selectedColor = Color.rgb(0, 0, 100); 

e usarlo:

f1.setBackgroundColor(selectedColor); 
1

è necessario aggiungere l'attributo type="color" nella voce colore:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color type="color" name="menu_background">#666666</color> 
</resources> 

Quindi, è possibile utilizzare il colore nel file xml come "@color\menu_background" e anche dal codice java.

Problemi correlati