我正在尝试使用与形状标签嵌套的形状选择器标签,这样我可以使按钮的角变圆,并在聚焦/按下时更改按钮状态。我还在layout.xml中使用了带有按钮的cardView小部件。但按钮的角落塑形不起作用。以下是button_states.xml的代码: -
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@color/grey">
<shape>
<solid android:color="#ffffff" />
<corners
android:topLeftRadius="7dp"
android:topRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
/>
</shape>
</item><!-- pressed -->
<item android:state_focused="true"
android:drawable="@color/orange">
<shape>
<solid android:color="#ffffff" />
<corners
android:topLeftRadius="7dp"
android:topRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
/>
</shape>
</item> <!-- focused -->
<item android:drawable="@color/green">
<shape>
<solid android:color="#ffffff" />
<corners
android:topLeftRadius="7dp"
android:topRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
/>
</shape>
</item> <!-- default -->
</selector>
请帮帮我......
答案 0 :(得分:2)
首先你的button_bg.xml将为:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/rounded" />
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/gradient" />
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/gradient" />
<item android:drawable="@drawable/rounded" />
</selector>
然后是rounded.xml角落。
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#BABABA"/>
<corners android:radius="15px"/>
<padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" />
如果是gradient.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#BABABA"/>
<corners android:radius="15px"/>
<padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="90"
android:startColor="#880f0f10"
android:centerColor="#880d0d0f"
android:endColor="#885d5d5e"/>
<corners
android:radius="15px" />
</shape>
</item>
</layer-list>
将button_bg指定为XML中按钮的背景。它将提供圆角和点击效果。