创建Android按钮时,原始颜色为灰色。当你按下它时,颜色会发生变化,当你松开它时,颜色会变回原来的灰色。
这是我想用我做的,但使用其他颜色而不是默认的灰色。问题是,当我改变我的按钮的颜色然后我点击它,没有任何反应,就像我点击一个空的布局。
这是我写的解决我问题的XML文件 - button_connexion_style.xml
?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="#ff0000ff" android:state_focused="true" /> <!-- focused -->
<item android:color="#449D44"/> <!-- default -->
<item android:drawable="#278727" android:state_pressed="true"/>
</selector>
在我的按钮XML代码中,我这样做来调用以前的XML:
android:background="@drawable/button_connexion_style"
但它没有用。
如果有人可以提供帮助,请告诉我。
答案 0 :(得分:0)
flat_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/rect_pressed"/>
<item android:drawable="@drawable/rect_normal"/>
</selector>
rect_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/rect_pressed" />
<item android:bottom="@dimen/layer_padding">
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/colorPrimary" />
</shape>
</item>
</layer-list>
rect_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/colorPrimaryDark" />
</shape>
在按钮中添加以下行
android:background="@drawable/flat_selector"
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@color/red" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@color/blue" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@color/green" />
<item
android:state_enabled="true"
android:drawable="@color/grey" />
</selector>
在上面的drawable中创建一个xml文件, 并相应地设置图像/颜色,然后将此xml设置为imageButton的背景。
答案 2 :(得分:0)
请根据您的颜色代码填写
button_connexion_style.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/green" android:state_pressed="true" /> <!-- pressed -->
<item android:drawable="@color/blue" android:state_focused="true" /> <!-- focused -->
<item android:drawable="@color/default_green" /> <!-- default -->
</selector>
并以值颜色
添加这些颜色代码 <color name="blue">#ff0000ff</color>
<color name="green">#278727</color>
<color name="default_green">#449D44</color>
答案 3 :(得分:0)
你几乎是对的,你错过的一件事应该永远是最后的陈述
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="#ff0000ff" android:state_focused="true" /> <!-- focused -->
<item android:drawable="#278727" android:state_pressed="true"/>
<item android:drawable="@color/yourDefaultColor" />
</selector>
让我知道如果不能正常工作