2013-08-03 7 views
21

Come si imposta il colore di sfondo della mia app Android. Quando provo:impostare il colore di sfondo: Android

LinearLayout li=(LinearLayout)findViewById(R.id.myLayout); 
li.setBackgroundColor(Color.parseColor("#rrggbb")); 

La mia app si arresta sempre. Qualcuno potrebbe darmi una mano. Grazie

+0

perché si blocca? cosa dice logcat? Credo che sia dovuto a qualcos'altro, come per esempio, hai impostato un layout per la tua attività utilizzando il metodo 'setContentView'? –

+1

Usi effettivamente 'Color.parseColor (" # rrggbb ")'? Dovresti usare hex lì –

risposta

38
Color.parseColor("#rrggbb") 

invece di #rrggbb si dovrebbe utilizzare valori esadecimali 0 a F per rr, gg e bb:

esempio Color.parseColor("#000000") o Color.parseColor("#FFFFFF")

Source

Dalla documentazione:

public static int parseColor (String colorString):

analizza la stringa di colore, e riportare il corrispondente colore int. Se la stringa non può essere analizzata, genera un'eccezione IllegalArgumentException. I formati supportati sono: #RRGGBB #AARRGGBB 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow', 'lightgray', 'darkgray', 'gray', 'lightgrey', 'darkgrey', 'aqua', 'fuschia', 'lime', 'maroon', 'navy', 'oliva', 'viola', 'argento', 'alzavola'

quindi credo che se si sta utilizzando #rrggbb si stanno ottenendo IllegalArgumentException nel logcat

Source

Alternativa:

Color mColor = new Color(); 
mColor.red(redvalue); 
mColor.green(greenvalue); 
mColor.blue(bluevalue); 
li.setBackgroundColor(mColor); 

Source

6

Prova questo:

li.setBackgroundColor(android.R.color.red); //or which ever color do you want 

EDIT: file di logcat distacco sarebbe anche aiutare.

+0

mainLayout.setBackgroundColor (getResources(). GetColor (android.R.color.black)); – fullMoon

13

Questa domanda è un vecchio ma può aiutare anche per gli altri.

Prova questo:

li.setBackgroundColor(getResources().getColor(R.color.blue)); 

    or 

    li.setBackgroundColor(getResources().getColor(android.R.color.red)); 

    or 

    li.setBackgroundColor(Color.rgb(226, 11, 11)); 


    or 
    li.setBackgroundColor(Color.RED) 
0

Tra l'altro, un buon suggerimento su come selezionare rapidamente il colore sulle versioni più recenti di AS è semplicemente digitare #fff e quindi utilizzando il selettore colore sul lato del codice a scegli quello che vuoi Veloce e più facile che ricordare tutti gli esadecimali colorati. Ad esempio:

android:background="#fff"