Estou tentando fazer um botão com um seletor, meu botão pode ter os seguintes estados:
- Ativado desativado
- Pressionado / Não Pressionado
De acordo com os estados mencionados acima. Eu preciso manipular o botão:
- Cor do texto
- imagem de fundo
O botão começa quando eu estou desabilitado, então ele deve ter o textColor desabilitado e o fundo do botão desabilitado. Mas posso ver o textColor padrão (especificado no estilo) e NENHUMA imagem de fundo!
Aqui está meu seletor button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button" />
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed"/>
<item android:state_pressed="true"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button"/>
<item android:state_pressed="false"
android:state_enabled="true"
android:drawable="@drawable/button"/>
</selector>
E aqui está minha declaração de botão no meu layout.xml
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
E, finalmente, este é o meu estilo (onde meu textColor padrão é definido)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="buttonStyle">
<item name="android:textStyle">bold</item>
<item name="android:textColor">#282780</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
Por favor ajude!
@color
buttyStyle. Agora está atualizado.text_color.xml
não compila (para mim, pelo menos) a menos que eu o coloque nadrawable
pasta, o que exige que se refira a ele como@drawable/text_color
color
a pasta está correta para o Recurso da Lista de Estados de Cores. Sua edição é bem-vinda.1. Crie uma pasta de cores em / res / pasta e na pasta de cores crie em xml:
text_color_selector.xml
2. Agora, crie um layout xml: -
fonte
A solução mais fácil é definir o filtro de cor para a imagem de fundo do botão e como vi aqui
Você pode fazer o seguinte:
Espero ter ajudado alguém ...
fonte
Não consigo ver o diabling do seu botão no seu layout xml. adicione isso ao layout do botão.
então o layout do botão será,
fonte
Você pode criar uma lista de cores
localização de arquivo:
O nome do arquivo será usado como o ID do recurso.
referência de recurso:
Em Java:
R.color.filename
Em XML:
@[package:]color/filename
sintaxe:
Exemplo:
Arquivo XML salvo em
res/color/button_text.xml
:Este XML de layout aplicará a lista de cores a uma Visualização:
Consulte: Referência da lista de cores
fonte