2015-02-08 161 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