如何在android中设置按钮选择颜色和圆角?

Bha*_*ath 16 android rounded-corners background-color android-button

我想为android中的按钮设置一个圆角,并在选中时更改按钮颜色.我正在做以下事情.

绘制/ push_button.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/green"/>
    <item android:state_focused="true"  android:drawable="@color/green"/>
    <item android:state_focused="false"  android:drawable="@color/green"/>
    <item android:state_pressed="false" android:drawable="@color/red"/>
    <item  android:drawable="@drawable/push_button_background"/>         
</selector>
Run Code Online (Sandbox Code Playgroud)

绘制/ push_button_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    >
    <solid android:color="#3F4040"/>
    <corners 
    android:radius="7dp"
    />
</shape>
Run Code Online (Sandbox Code Playgroud)

在代码中,我正在使用

android:background="@drawable/push_button"
Run Code Online (Sandbox Code Playgroud)

这里的问题是,选择和取消选择时按钮颜色设置正确.但是,圆角不起作用.

怎么做?如果我使用

android:background="@drawable/push_button_background"
Run Code Online (Sandbox Code Playgroud)

然后,圆角正在工作,但选择时按钮颜色更改不起作用

怎么实现这个?

我已经提到了这个链接.即使这样没有帮助!!

Bha*_*ath 55

我已经找到了我的问题的答案,几乎没有试错.

这是解决方案.

<?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/green"/>
    <corners 
    android:radius="7dp"/>
    </shape>
 </item>

 <item android:state_focused="true" >
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="@color/green"/>
    <corners 
    android:radius="7dp"/>
    </shape>
 </item>

 <item android:state_focused="false" >
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="@color/red"/>
    <corners 
    android:radius="7dp"/>
    </shape>   
 </item>

 <item android:state_pressed="false" >
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="@color/red"/>
    <corners 
    android:radius="7dp"
    />
    </shape>
 </item> 

</selector>
Run Code Online (Sandbox Code Playgroud)