2012-09-07 15 views
7

Sto cercando di impostare lo sfondo del mio FrameLayout usando i miei colori.android: come usare i colori personalizzati?

Ho creato un file .xml che contiene i miei colori. Eccolo:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="red">#FF0000</color> 
    <color name="orange">#FF7D00</color> 
    <color name="yellow">#FFFF00</color> 
    <color name="green">#00FF00</color> 
    <color name="blue">#00B4FF</color> 
    <color name="black">#000000</color> 
</resources> 

Ed ecco il codice in cui Im cercando di impostare il colore di sfondo, ma quando faccio funzionare l'applicazione, il FrameLayout è sempre grigio, perché ?:

FrameLayout MyFrameLayout = new FrameLayout(this); 
LayoutParams MyFrameLayoutParam = new LayoutParams(LayoutParams.FILL_PARENT, 200); 
MyFrameLayout.setLayoutParams(MyFrameLayoutParam); 

MyFrameLayout.setBackgroundColor(R.color.red); 

Parent.addView(MyFrameLayout); 

risposta

9

È necessario per recuperare il colore dalle risorse prima di impostarlo. Stai assegnando l'ID R.java non il valore effettivo.

Color red = getApplicationContext().getResources().getColor(R.color.red) 
MyFrameLayout.setBackgroundColor(red); 
+0

Penso che sia R.color.red invece di R.id.red – vincentp

+0

Sì, buona scoperta. – tsmith

0

È possibile utilizzare setBackgroundResource (colori)

Ecco un esempio:

relativelayout.setBackgroundResource(R.color.green);

2

Per usare il colore personalizzato in XML, si può usare qualcosa di simile:

android:color="@color/orange"

3

T il suo rende uno sfondo verde, trova l'esagono di colore che vuoi.

yourButton.setBackgroundColor (Color.parseColor ("# 25b72f"));

Problemi correlati