如何更改链接到drawable的按钮的颜色?

时间:2014-06-17 17:48:36

标签: android android-drawable

我的相对布局中有这个按钮:

<Button
        android:id="@+id/gpsButton"
        android:layout_width="50sp"
        android:layout_height="50sp"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/tableLayout1"
        android:background="@drawable/round_button"
        android:gravity="center_vertical|center_horizontal"
        android:text="GPS"
        android:textColor="#ffffff" />

它与这种阴影有关:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#FF0000"/>
    <stroke android:width="2sp" android:color="#fff" />
</shape>

我的问题是如何更改活动按钮的颜色?

我已经尝试了但应用程序崩溃了 - .- 以下是我的代码片段:

RelativeLayout relLayout = (RelativeLayout) findViewById(R.id.reli);
                        GradientDrawable bgShape = (GradientDrawable) relLayout.getBackground();
                        bgShape.setColor(Color.parseColor("#FFFF00"));

我错了什么?我不明白如何使用视图执行此操作。

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

您可以通过添加彩色滤镜,以编程方式轻松更改Button的背景颜色。为此,在XML文件中设置白色背景。然后,要使按钮变为红色,您可以执行以下操作:

gpsButton.getBackground().setColorFilter(Color.RED, Mode.MULTIPLY);

redwhite将成倍增加,结果为red。当然,您可以用您想要的颜色替换Color.RED