按钮形状以及选择器标签



我试图使用形状选择器标签嵌套的形状标签,以便我使按钮的角圆形,并在聚焦/按下时改变按钮状态。我还在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>

首先,您的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>

然后为圆角。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中按钮的背景。它将给圆角和点击效果。

最新更新