更改TextView的下划线颜色

时间:2015-02-08 06:57:16

标签: java android user-interface

如何在Android中更改TextView的下划线颜色?所需结果如下所示: Underline color

默认是某种蓝色(可能是全蓝色),但我需要将其更改为橙色。问题是,我不知道究竟是怎么称呼的(这是下划线,指标还是什么?),所以我不能自己谷歌这个。

谢谢

2 个答案:

答案 0 :(得分:0)

您有两个选项,对于基本的编辑文本,您可以使用其中任何一个。 karaokyo标记的问题不包括第二个选项,我希望减少应用程序的大小。

您可以使用Android Holo Colors网络应用生成自定义主题,选择颜色和所需的控件,并生成9个补丁和相应的主题文件。 可能需要稍微修改才能使其适合您当前的项目,但您需要的只是生成的zip。

或者使用Android 5,您可以使用Widget Tinting,使用AppCompat v21也可以在较旧的Android版本中使用。如果没有包含所有额外资源,这将为您完成所有颜色。请注意,这在任何地方都无法正常工作,但如果您在活动中使用纯文本编辑文本,则应该没问题。实施的全部细节here

答案 1 :(得分:0)

这就是我管理它的方式:

这个想法是改变文本框的背景,包含下划线颜色的背景,背景是绘制线条的背景。颜色由" Tint"但是,如果您只是直接从控件更改Tint,则会更改使用该背景实例的所有控件的色调,即应用程序中的所有TextViews小部件。如果您只需要在单个控件上更改颜色,则需要克隆背景drawable并修改它的色调。 Mutate是实际创建新实例的方法。

我的示例是xamarin自定义渲染器的一部分,但是如果您将方法名称切换为小写,我可以将其简单地应用于java。

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