modify - supportactionbar android




Definir a cor de fundo do elemento de layout do Android (6)

Eu estou tentando, de certa forma, clonar o design de uma atividade de um conjunto de slides no design da interface do Android . No entanto estou tendo um problema com uma tarefa muito simples.

Eu criei o layout como mostrado na imagem, e o cabeçalho é um TextView em um RelativeLayout . Agora desejo alterar a cor de fundo do RelativeLayout , mas não consigo descobrir como.

Eu sei que posso definir a propriedade android:background na tag RelativeLayout no arquivo XML, mas o que eu configuro? Eu quero definir uma nova cor que eu possa usar em vários lugares. É um drawable ou uma string ?

Além disso, eu esperaria que houvesse uma maneira muito simples para isso de dentro do designer de interface do usuário do Eclipse Android que eu deveria estar faltando?

Estou um pouco frustrado atualmente, pois isso deve ser uma atividade que é realizada com alguns cliques no máximo. Então, qualquer ajuda é muito apreciada. :)


4 maneiras possíveis, use uma que você precisa.

1. Kotlin

val ll = findViewById<LinearLayout>(R.id.your_layout_id)
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white))

2. Ligação de dados

<LinearLayout
    android:background="@{@color/white}"

OU mais declarações úteis

<LinearLayout
    android:background="@{model.colorResId}"

3. XML

<LinearLayout
    android:background="#FFFFFF"

<LinearLayout
    android:background="@color/white"

4. Java

LinearLayout ll = (LinearLayout) findViewById(R.id.your_layout_id);
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white));

As respostas acima de tudo são estáticas. Eu pensei em fornecer uma resposta dinâmica. Os dois arquivos que precisarão estar em sincronia são o foo.xml relativo com o layout e o activity_bar.java que corresponde à classe Java correspondente a este R.layout.foo .

Em foo.xml defina um id para o layout inteiro:

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

E em activity_bar.java defina a cor no 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);
        ...
    }
    ...
}

Eu espero que isso ajude.


O Android Studio 2.1.2 (ou possivelmente anterior) permite escolher entre uma roda de cores:

Eu tenho isso adicionando o seguinte ao meu layout:

android:background="#FFFFFF"

Então eu cliquei na cor FFFFFF e cliquei na lâmpada que apareceu.


Se você quiser alterar uma cor rapidamente (e você não tem números Hex memorizados) o Android tem algumas cores predefinidas que você pode acessar assim:

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

Existem 15 cores que você pode escolher, o que é bom para testar as coisas rapidamente, e você não precisa configurar arquivos adicionais.

Configurar um arquivo values ​​/ colors.xml e usar Hex retas, como explicado acima, ainda funcionará.


Você pode usar android:background="#DC143C" ou qualquer outro valor RGB para sua cor. Eu não tenho nenhum problema em usá-lo dessa maneira, como declarado here


o

res/values/colors.xml.

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

exemplo não funcionou para mim, mas o

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

trabalhei para mim no elemento de layout relativo como um atributo.







adt