我需要按一个按钮按下一个形状,这是我按钮的背景

时间:2011-05-18 16:07:14

标签: android button selector shape

这是我的形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80000000"
        android:endColor="#80FFFFFF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="10dp" />
</shape>

这就是按下按钮所需的内容

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80FFFFFF"
        android:endColor="#80000000"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="10dp" />
</shape>

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
 </selector>

我尝试将此代码链接到两个形状但是当我将其设置为背景时,它只是使我的按钮默认为灰色。

我将选择器添加到我的按钮的背景中,它具有正确的不透明度,但我需要它在单击时显示不同的颜色(如白色或其他东西)。

任何人都知道吗?

1 个答案:

答案 0 :(得分:7)

我是这样做的:

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

这是我通常用于我的主题