2014-01-30 159 views
5

(對不起,我是法國人)如何動態改變筆畫顏色?

我需要更改一個Shape的stroke color。 我有同樣的問題描述here。 當EditText不正確時,我需要更改純色。

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" android:padding="10dp"> 
    <solid android:color="#FFFFFF"/> 
    <corners 
     android:bottomRightRadius="5dp" 
     android:bottomLeftRadius="5dp" 
     android:topLeftRadius="5dp" 
     android:topRightRadius="5dp"/> 
    <stroke android:width="2px" android:color="#CCCCCC"/> 
</shape> 

答案:

GradientDrawable myGrad = (GradientDrawable)rectangle.getBackground(); 
myGrad.setColor(Color.BLACK); 

在回答問題是,我不明白矩形項目。 如果我將它替換爲EditText,它將應用於背景,而不是純色背景。

在此先感謝。

編輯:我的壞,我想改變筆畫顏色,而不是固體。

+0

你的意思是邊框不可見? –

+0

是的,它是可見的,他是黑色的。我需要將顏色更改爲紅色。 – user3252731

+0

我認爲你是困惑中風與堅實。試試我的答案,並讓我知道如果你正在尋找別的東西。 –

回答

12
GradientDrawable myGrad = (GradientDrawable)rectangle.getBackground(); 
myGrad.setStroke(2, Color.RED); 
+4

只能更改顏色並保持原始筆畫寬度? –

+1

設置筆畫寬度和顏色時,您可能必須小心密度。我不認爲myGrad.setStroke(2,Color.RED)與「2dp」相同 – lostintranslation