0

我在 xml 中有一个形状:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <corners android:topLeftRadius="8dip"
        android:topRightRadius="8dip"
        android:bottomLeftRadius="8dip"
        android:bottomRightRadius="8dip"/>
</shape>

我希望这个形状是按钮的形状。但是当我宣布:

button.setBackgroundDrawable(the shape)

之后我无法更改按钮颜色。它总是给我黑色背景,我想动态改变颜色。我试过了:

button.getBackground().setColorFilter(color, PorterDuff.Mode.MULTIPLY);

它没有任何影响。谢谢。

4

2 回答 2

0

两个我都试过了......

GradientDrawable bgShape = (GradientDrawable)b​​1.getBackground();

bgShape.setColor(Color.GREEN);

或者

b1.getBackground().setColorFilter(Color.GREEN, Mode.MULTIPLY);

或者

b1.getBackground().setColorFilter(Color.parseColor("#bbb000"),Mode.DARKEN);

于 2012-07-29T00:47:23.110 回答
0

不确定这是否适合您,但请尝试一下。这个对我有用:

 button.getPaint().setColor(Color.GREEN);

然后显然你可以将“绿色”更改为其他颜色。请注意,Android 不会使用所有颜色作为默认颜色,仅使用原色和主要颜色,如红色、蓝色、绿色、黄色等。

希望这可以帮助!

于 2012-07-28T23:52:13.110 回答