2015-02-08 194 views
1

如何更改Android中TextView的下劃線顏色?預期結果如下所示: Underline color更改TextView的下劃線顏色

默認是某種藍色(可能是全息藍色),但我需要將其更改爲橙色。問題是,我不知道這個叫什麼名字(是這個下劃線,指標還是什麼?),所以我不能自己google。

謝謝

+0

我有同樣的問題。試圖找到解決辦法,但最終把它留下藍色。 – Apurva 2015-02-08 07:02:50

+0

它可能會幫助:http://www.phonesdevelopers.com/1790652/ – 2015-02-08 07:04:29

+1

可能重複的[如何更改EditText中的線顏色](http://stackoverflow.com/questions/24677414/how-to-change-line -color-in-edittext) – tachyonflux 2015-02-08 07:05:47

回答

0

你有兩個選擇,對於基本的編輯文本,你可以使用其中的任何一個。第二個選項不包括在卡拉約尤標記的問題中,我希望減少應用程序的大小。

您可以使用Android Holo Colors網絡應用程序生成自定義主題,選擇顏色和您想要的控件,並生成9個補丁和相應的主題文件。 可能需要一點修補才能使其適合您當前的項目,但您需要的只是生成的zip文件。

另外在Android 5中,您可以使用Widget Tinting,在AppCompat v21中也支持舊版Android版本。這樣做會爲所有顏色添加所有額外資源。請注意,這在任何地方都行不通,但如果您在活動中使用簡單的編輯文本,則應該可以。實現的全部細節here

0

這是我怎麼做的:

的想法是改變文本框的背景下,至極的是,包括下劃線的顏色之一,背景是繪製一個該線。顏色由「Tint」控制,但如果您直接從控件更改Tint,則會更改所有使用該背景實例的控件的色調,即應用中的所有TextViews Widget。如果您只需要更改單個控件的顏色,則需要克隆背景可繪製並修改它的色調。 Mutate是實際創建新實例的方法。

我的例子是一個xamarin自定義渲染器的一部分,但它可以只是簡單地適用於java,如果您將方法名稱切換爲小寫,我認爲。

var background = YourTextView.Background.GetConstantState().NewDrawable(); 
    background.Mutate(); 
    background.SetTint(newLineColor.ToAndroid()); 
    YourTextView.SetBackground(background); 
+0

Holo主題死後,在API 21中引入了可繪製色調。你可能意思是'background.SetColorFilter'。 – 2016-11-10 00:13:28