Recurso da lista de estados de cor
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Uma ColorStateList
é um objeto que você pode definir em XML e usar como uma cor que muda de tonalidade, dependendo do
estado do objeto View
em que ele
é usado. Por exemplo, um widget Button
pode existir em um de vários estados: pressionado, focado ou nenhum dos dois. Usando uma lista de estados de cor,
é possível fornecer uma cor diferente para cada estado.
Descreva uma lista de estados em um arquivo XML. Cada cor é definida em um elemento <item>
dentro de um elemento <selector>
único. Cada <item>
usa vários atributos para descrever o estado em que é usado.
Durante cada mudança, a lista de estados é percorrida de cima abaixo, e o primeiro item que
corresponde ao estado atual é usado. A seleção não se baseia na "melhor"
correspondência, mas no primeiro item que atende aos critérios mínimos do estado.
Observação: se você quiser fornecer um recurso de cor estática, use um
valor color simples.
- Localização do arquivo:
res/color/filename.xml
O nome do arquivo é usado como ID de recurso.
- Tipo de dados do recurso compilado:
- Ponteiro do recurso para uma
ColorStateList
.
- Referência de recurso:
-
Em Java:
R.color.filename
Em XML: @[package:]color/filename
- sintaxe:
-
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:lStar="floating_point_value"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
- elementos:
-
<selector>
- Obrigatório. Esse é o elemento raiz. Contém um ou mais elementos
<item>
.
Atributos:
xmlns:android
- String. Obrigatório. Define o namespace XML, que é
"http://schemas.android.com/apk/res/android"
.
<item>
- Define a cor usada durante certos estados, conforme descrito pelos atributos correspondentes. Ele é
filho de um elemento
<selector>
.
Atributos:
android:color
- Cor hexadecimal. Obrigatório. A cor é especificada com um
valor RGB e um canal alfa opcional.
O valor sempre começa com um caractere cerquilha (#
) seguido pela
informação Alpha-Red-Green-Blue em um dos formatos abaixo:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
android:lStar
- Ponto flutuante. Opcional. Esse atributo modifica a luminância perceptível da cor base. Ele usa um
valor de ponto flutuante entre 0 e 100 ou um atributo de tema que é resolvido dessa forma. A cor
geral do item é calculada convertendo a cor da base em um espaço de cores adequado para acessibilidade
e definindo L* como o valor especificado no atributo
lStar
.
Exemplo: android:lStar="50"
android:state_pressed
- Booleano.
"true"
, se o item é usado quando o objeto é tocado, por exemplo, quando um botão
é tocado ou clicado. "false"
, se o item é usado no estado padrão não tocado.
android:state_focused
- Booleano.
"true"
, se o item é usado quando o objeto está em foco, por exemplo, quando um botão
é destacado usando o trackball ou botão direcional. "false"
, se o item é usado no estado
padrão sem foco.
android:state_selected
- Booleano.
"true"
, se o item é usado quando o objeto é selecionado, por exemplo, quando uma
guia é aberta. "false"
, se o item é usado quando o objeto não está selecionado.
android:state_checkable
- Booleano.
"true"
, se o item é usado quando o objeto pode ser marcado. "false"
, se o
item é usado quando o objeto não pode ser marcado. Essa função é útil somente quando o objeto pode fazer a
transição entre um widget selecionável e não selecionável.
android:state_checked
- Booleano.
"true"
, se o item é usado quando o objeto está marcado. "false"
, se o
item é usado quando o objeto está desmarcado.
android:state_enabled
- Booleano.
"true"
, se o item é usado quando o objeto está ativado e pode
receber eventos de toque ou clique. "false"
, se o item é usado quando o objeto está desativado.
android:state_window_focused
- Booleano.
"true"
, se o item é usado quando a janela do aplicativo está em foco,
ou seja,
quando o aplicativo está em primeiro plano. "false"
, se o item é usado quando a janela
do aplicativo não está em foco, por exemplo, quando a aba de notificações está suspensa ou uma caixa de diálogo é exibida.
Observação: o primeiro item na lista de estados que
corresponder ao estado atual do objeto será usado. Portanto, se o primeiro item na lista não tiver
nenhum dos atributos de estado acima, ele será usado sempre. Por esse motivo, coloque o
valor padrão por último, conforme mostrado no exemplo a seguir.
- exemplo:
- Arquivo XML salvo em
res/color/button_text.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
O XML de layout a seguir aplica a lista de cores a uma View
:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- Confira também:
-
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2024-09-20 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Não contém as informações de que eu preciso"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Muito complicado / etapas demais"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Desatualizado"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema na tradução"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema com as amostras / o código"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Outro"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Fácil de entender"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Meu problema foi resolvido"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Outro"
}]
{"lastModified": "\u00daltima atualiza\u00e7\u00e3o 2024-09-20 UTC."}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-09-20 UTC."]]