如何动态改变形状颜色?

时间:2012-07-28 22:01:15

标签: android android-button

我在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);

并没有任何影响。 感谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

希望这有帮助!

答案 1 :(得分:0)

我试过了......

GradientDrawable bgShape =(GradientDrawable)b1.getBackground();

bgShape.setColor(Color.GREEN);

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

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