如何在安卓系统中更改下划线的颜色

4

我正在尝试更改textView下划线的颜色,我找到了以下链接

如何在Android中使用其他颜色获取UnderlineSpan?

但是如果我尝试实现它,我无法得到颜色

这是我的代码

String middleStringText = MyTextView.getText().toString();
Spannable spannable1 = new SpannableString(middleStringText);
CustomUnderLineSpan underLineSpan = new CustomUnderLineSpan(Color.YELLOW,2, 5);
spannable1.setSpan(underLineSpan, 0, 10, spannable1.SPAN_EXCLUSIVE_EXCLUSIVE);
MyTextView.setText(spannable1, TextView.BufferType.SPANNABLE);

有人尝试过类似的实现吗?

4个回答

8

这并不是正确的解决方案,但它对于临时使用来说很有用,我从stackoverflow上的某个链接中得到了它。

spannable1.setSpan(new ColoredUnderlineSpan(Color.YELLOW), middleStringText.indexOf(startText), middleStringText.indexOf(EndText) + value.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);


final class ColoredUnderlineSpan extends CharacterStyle
        implements UpdateAppearance {
    private final int mColor;

    public ColoredUnderlineSpan(final int color) {
        mColor = color;
    }

    @Override
    public void updateDrawState(final TextPaint tp) {
        try {
            final Method method = TextPaint.class.getMethod("setUnderlineText",
                    Integer.TYPE,
                    Float.TYPE);
            method.invoke(tp, mColor, 8.0f);
        } catch (final Exception e) {
            tp.setUnderlineText(true);
        }
    }
}

0

检查这个

        Paint p = new Paint();
        p.setColor(Color.RED);

        TextView t = (TextView) findViewById(R.id.textview);
        t.setPaintFlags(p.getColor());
        t.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
        t.setText("Hello World");  

0
你可以创建一个新的绘制颜色,然后将该颜色分配给TextView。
Paint p = new Paint();
p.setColor(Color.RED);

TextView myTextView = (TextView) findViewById(R.id.textview);
myTextView .setPaintFlags(p.getColor());
myTextView .setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
myTextView .setText("Underline Text with red color.");  

我希望它只针对行中的某些单词执行操作,而不是整个行。 - Rakesh

-1
String Text = "<u><font color='blue'>Underline Text</font></u>.";
textView.setText(Html.fromHtml(Text), TextView.BufferType.SPANNABLE);

1
而颜色在哪里? - Leos Literak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接