2012-07-28 190 views
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); 

它沒有任何影響。 謝謝。

回答

0

不知道這是否適合你,但嘗試它。它適用於我:

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

然後很明顯,你可以改變其他顏色的「綠色」。 請注意,Android不使用所有顏色作爲默認值,只有主要和主要顏色,如紅色,藍色,綠色,黃色等。

希望這有助於!

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)。

+0

對不起,但這些都不起作用... – LiorZ 2012-07-30 05:23:12

+0

發佈您的完整代碼 – saravana 2012-08-01 09:20:51