Configuración del color de fondo del elemento de diseño de Android


Estoy tratando de clonar un poco el diseño de una actividad a partir de un conjunto de diapositivas en el diseño de la interfaz de usuario de Android. Sin embargo estoy teniendo un problema con una tarea muy simple.

He creado el diseño como se muestra en la imagen, y el encabezado es un TextView en un RelativeLayout. Ahora deseo cambiar el color de fondo de la RelativeLayout, sin embargo, no parece saber cómo.

Sé que puedo establecer la propiedad android:background en la etiqueta RelativeLayout en el archivo XML, pero ¿en qué la establezco? Quiero definir una nuevo color que puedo usar en varios lugares. Es un drawable o string?

Además, yo esperaría que haya una manera muy simple de esto desde dentro del Eclipse Android UI designer que debo estar perdiendo?

Estoy un poco frustrado actualmente, ya que esta debería ser una actividad que se realiza con unos pocos clics al máximo. Así que cualquier ayuda es muy apreciada. :)

Diseño de actividad de Android

Author: Bjarke Freund-Hansen, 2011-09-11

7 answers

Puede usar recursos de color simples, especificados generalmente dentro de res/values/colors.xml.

<color name="red">#ffff0000</color>

Y use esto a través de android:background="@color/red". Este color también se puede usar en cualquier otro lugar, por ejemplo, como color de texto. Referenciarlo en XML de la misma manera, o obtenerlo en código a través de getResources().getColor(R.color.red).

También puede usar cualquier recurso de elemento de diseño como fondo, use android:background="@drawable/mydrawable" para esto (eso significa elementos de diseño 9patch, mapas de bits normales, elementos de diseño de forma, ..).

 256
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-11 14:28:19

Las respuestas anteriores son agradables.También puede hacer esto programáticamente si desea

Primero, su diseño debe tener un ID. Añádalo escribiendo después de la línea +id en res/layout/*.xml

<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>

Luego, en su código Java, realice los siguientes cambios.

RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);

Aparte de esto, si tiene el color definido en colores.xml, entonces también se puede hacer mediante programación :

rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));
 83
Author: Android Killer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-16 05:22:55

Puede utilizar android:background="#DC143C", o cualquier otro RGB valores para su color. No tengo ningún problema en usarlo de esta manera, como se indica aquí

 37
Author: yjw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-06 06:33:14

El

res/values/colors.xml.

<color name="red">#ffff0000</color>
android:background="@color/red"

Ejemplo no funcionó para mí, pero el

android:background="#(hexidecimal here without these parenthesis)"

Funcionó para mí en el elemento de diseño relativo como un atributo.

 19
Author: user2585548,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-31 20:29:30

Si quieres cambiar un color rápidamente (y no tienes números hexadecimales memorizados) android tiene algunos colores preestablecidos a los que puedes acceder de esta manera:

android:background="@android:color/black"

Hay 15 colores que puede elegir, lo que es bueno para probar las cosas rápidamente, y no es necesario configurar archivos adicionales.

Configurando valores/colores.el archivo xml y el uso de hexágono recto como se explicó anteriormente seguirán funcionando.

 15
Author: kgibilterra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-29 16:15:34

Android studio 2.1.2 (o posiblemente anterior) le permitirá elegir de una rueda de colores:

Rueda de color en Android Studio

Obtuve esto agregando lo siguiente a mi diseño:

android:background="#FFFFFF"

Luego hice clic en el color FFFFFF y hice clic en la bombilla que apareció.

 2
Author: Shygar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-08 14:10:56

Las respuestas sobre todo son estáticas. Pensé que daría una respuesta dinámica. Los dos archivos que tendrán que estar sincronizados son el relativo foo.xml con el layout y activity_bar.java que corresponde a la clase Java correspondiente a este R.layout.foo.

En foo.xml establezca un id para todo el diseño:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/foo" .../>

Y en activity_bar.java establecer el color en el onCreate():

public class activity_bar extends AppCompatActivty {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foo);

            //Set an id to the layout
        RelativeLayout currentLayout = 
                    (RelativeLayout) findViewById(R.id.foo);

        currentLayout.setBackgroundColor(Color.RED);
        ...
    }
    ...
}

Espero que esto ayude.

 0
Author: T.Woody,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-05 23:57:52