0

当您单击它时,我正在尝试使按钮看起来被按下。但是,当我尝试将该代码实现到我的 xml 文件中时,我之前拥有的圆形按钮功能不起作用。我将 xml 文件链接到按钮上的 android:background 命令。

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/light_orange" android:state_pressed="true"/>
    <item android:drawable="@color/orange"/>
<shape
android:shape="rectangle" android:padding="10dp">

<solid android:color="#FFFF00"/> 
    <corners
     android:bottomRightRadius="10dp"
     android:bottomLeftRadius="10dp"
  android:topLeftRadius="10dp"
  android:topRightRadius="10dp"/>
  </shape>

</selector> 
4

1 回答 1

0

您总共需要三个xml。一个是你的“正常”圆形,一个是你的圆形,颜色不同,或者你想表明它被按下了。最后一个选择器,就像您在示例中使用的选择器一样,根据状态,您可以在其中引用其他两个可绘制对象...

大致是这样的:

1- button_not_pressed.xml

<solid android:color="#FFFFFF00"/> 
    <corners
     android:bottomRightRadius="10dp"
     android:bottomLeftRadius="10dp"
  android:topLeftRadius="10dp"
  android:topRightRadius="10dp"/>
  </shape>

2- button_pressed

<solid android:color="#AADDDD00"/> 
    <corners
     android:bottomRightRadius="10dp"
     android:bottomLeftRadius="10dp"
  android:topLeftRadius="10dp"
  android:topRightRadius="10dp"/>
  </shape>

3- stateful_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed" android:state_pressed="true"/>
<item android:drawable="@color/button_not_pressed"/> 
</selector> 

然后你可以简单地给你的按钮drawable stateful_button作为背景,当你按下它时它会改变颜色......

于 2014-03-13T15:35:10.223 回答