我想创建一个仅在按钮顶部带有黑色描边的按钮。在 stackoverflow 上有很多类似的问题,但我还想要一件事——按钮的颜色在按下时应该改变。 我无法将选择器与给定的答案一起使用 here或 here .按钮背景的 xml 代码应该是什么 (android:background)? 提前致谢:)
我现在的代码,四面都有一个统一的笔划
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="@color/dark_red" />
<stroke
android:width="0.1dp"
android:color="#fff" />
<corners
android:radius="0dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="@color/red"
android:endColor="@color/dark_red"
android:angle="270" />
<stroke
android:width="0.1dp"
android:color="#fff" />
<corners
android:radius="0dp" />
</shape>
</item>
最佳答案
您可以使用layer-list
来绘制您需要的困难背景。
您必须为选择器添加两个背景状态
unpressed_state.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/black" />
</shape>
</item>
<item
android:top="5dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white" />
</shape>
</item>
</layer-list>
和不同颜色的第二次按下状态的相同代码(只需将 @android:color/black
更改为您需要的任何内容)。它将是 prssed_state.xml
并且,在它为背景创建自己的选择器之后,您需要的所有东西
button_bg.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pressed_state" android:state_pressed="true" />
<item android:drawable="@drawable/unpressed_state" />
</selector>
现在只需将 button_bg 放在按钮的 android:background
属性中:
android:background="@drawable/button_bg"
关于android - 如何创建一个只有一侧有描边的按钮,以便在按下按钮时颜色发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25338016/