如何以编程方式更改按钮颜色 - Android

时间:2014-11-22 03:59:05

标签: android xml

我有一个我想成为圆形的按钮,所以我制作了一个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>

3 个答案:

答案 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));