我的应用程序中有一些按钮,这些按钮的背景可绘制:
<Button
android:id="@+id/loginbutton"
android:text="@string/login"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:layout_width="135dp"
android:layout_height="30dp"
android:background="@drawable/buttonshape"
android:layout_centerHorizontal="true"
android:layout_below="@+id/til"
android:layout_marginTop="50dp"
/>
可绘制对象:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="30dp"
/>
<solid
android:color="@color/colorPrimary"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<size
android:width="270dp"
android:height="60dp"
/>
<stroke
android:width="3dp"
android:color="#878787"
/>
如果我这样做:
loginButton.setBackgroundColor(Color.parseColor(getBgColor()));
不仅颜色改变了,而且按钮的整个形状也改变了,所以没有圆角等等。我如何只改变背景颜色,而保持其余的可绘制内容呢?
谢谢。
答案 0 :(得分:0)
您尝试过这样的事情吗?
button.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.blue));