我有一个我想成为圆形的按钮,所以我制作了一个xml文件并将其设置为背景。该按钮现在是圆形但我希望能够以编程方式更改其颜色,而不是将其硬编码到xml文件中。我怎么能这样做?
这是我的圆形按钮的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ffcb05"/>
</shape>
答案 0 :(得分:9)
您可以使用ColorFilter更改视图的颜色。它非常简单快捷。
button.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
此代码将按钮颜色变为红色。
答案 1 :(得分:1)
试试这个:
GradientDrawable backgroundShape = (GradientDrawable)btn.getBackground();
backgroundShape.setColor(Color.BLACK);
答案 2 :(得分:1)
尝试使用getPaint获取按钮背景设置颜色:
((ShapeDrawable)yourbutton.getBackground()).getPaint().setColor(getResources().getColor(R.color.colorToSet));