不同背景的 ButtonView

ButtonView with different background

我设计了一个圆角按钮。

button_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:radius="10dp"/>

</shape>

布局中:

<Button
   android:background="@drawable/button_selector"
.../>

每次点击应该按钮的颜色都会改变:

在activity中,在onClickListener()里面:

btn1.setBackgroundColor(getAnswerColor(choiceArray[0]));

但是如果我这样做,我不会得到圆角。

如何得到圆角?请提出建议。

您可以从这个工具网站制作您的按钮 ==> Android Button Maker

您可以使用此工具和代码制作任何类型的按钮。

这里我根据您的要求编辑这个答案。

所以,为不同的背景颜色制作两个不同的按钮,并使用选择器来更改使用此代码的背景 onClick.For。

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item android:drawable="@drawable/click_button" android:state_pressed="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/not_click_button" android:state_pressed="false" />

</selector>

试试这个

我检查了以下 xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item >
<shape android:shape="rectangle"  >
     <corners android:radius="13dip" />
     <stroke android:width="1dip" android:color="#5e7974" />
     <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />            
 </shape>
</item>
</selector>

在按钮上单击添加此代码

  StateListDrawable drawable = (StateListDrawable) v.getBackground();
  drawable.setColorFilter(Color.RED,PorterDuff.Mode.SRC_ATOP);
  button1.setBackground(drawable);
btn1.setBackgroundResource(R.drawable.button_selector);

GradientDrawable drawableGradient = (GradientDrawable) btn1.getBackground();
drawableGradient .setColor(Color.RED);