这个问题已经在这里有一个答案:
我在我的应用程序,在后台绘制按钮:
<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()));
不仅颜色,但按钮的整个形状改变,所以没有圆角,等我怎样才能只改变背景的颜色,保持我绘制的东西休息吗?
谢谢。
你有没有尝试过这样的事情:
button.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.blue));