按下

时间:2017-05-17 08:47:49

标签: android android-xml android-button android-color

创建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"

但它没有用。

如果有人可以提供帮助,请告诉我。

4 个答案:

答案 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> 

让我知道如果不能正常工作