【发布时间】:2014-09-05 16:28:07
【问题描述】:
我的应用中有一些带有透明背景的按钮。现在,我想自定义它们以保持透明背景,但是当按下它们时,背景应该变成绿色。
我知道这里有很多关于自定义按钮的主题,我已经阅读了其中的几个,还有很多来自谷歌的教程。尽管这似乎是一项简单的任务,但我并没有让它发挥作用。
这是我的按钮的示例代码:
<Button
android:id="@+id/accept_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/button_state"
android:text="@string/btnaccept"
android:textStyle="bold" />
这是选择器 xml 文件 buton_state.xml,我在其中定义了不同按钮状态的背景颜色变化:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Button focused and pressed-->
<item android:state_pressed="true"
android:state_focused="true" >
<shape>
<solid
android:color="@color/LightGreen" />
</shape>
</item>
<!-- Button Default-->
<item android:state_pressed="false"
android:state_focused="false" >
<shape>
<solid
android:color="@android:color/transparent" />
</shape>
</item>
</selector>
此文件位于 res/drawable 文件夹中。
在我的应用中,按钮正确地获得了默认的透明背景,但是当聚焦或按下时,此背景颜色不会变为绿色。
【问题讨论】:
标签: android