2012-09-07 16 views
7

Im tratando de establecer el backgroundcolor de mi FrameLayout usando mis propios colores.android: ¿Cómo usar colores personalizados?

Creé un archivo .xml que contiene mis propios colores. aquí está:

<?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> 

Y aquí es donde el código Im tratando de establecer el backgroundColor, pero cuando corro la aplicación, el FrameLayout es siempre gris, ¿por qué ?:

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

MyFrameLayout.setBackgroundColor(R.color.red); 

Parent.addView(MyFrameLayout); 

Respuesta

9

Es necesario para recuperar el color de los recursos antes de configurarlo. Estás asignando el ID R.java no el valor real.

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

Creo que es R.color.red en lugar de R.id.red – vincentp

+0

Sí, buen descubrimiento. – tsmith

0

Puede utilizar setBackgroundResource (color)

Aquí un ejemplo:

relativelayout.setBackgroundResource(R.color.green);

2

Para utilizar el color personalizado en XML, se usaría algo como:

android:color="@color/orange"

3

T El hace un fondo de botón verde, encuentra el hexágono de color que quieras.

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

Cuestiones relacionadas