如何在android中更改下划线的颜色
我正在尝试更改textView中下划线的颜色,我遇到了链接 但是,如果我试图实现这一点,我就不会得到颜色 这是我的密码如何在android中更改下划线的颜色,android,textview,Android,Textview,我正在尝试更改textView中下划线的颜色,我遇到了链接 但是,如果我试图实现这一点,我就不会得到颜色 这是我的密码 String middleStringText = MyTextView.getText().toString(); Spannable spannable1 = new SpannableString(middleStringText); CustomUnderLineSpan underLineSpan = new CustomUnderLineSpan(Color.YE
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);
有人尝试过类似的实现吗?您可以做的是创建一种新的绘制颜色,然后将该颜色指定给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.");
这不是正确的解决方案,但它暂时是有用的,这是我从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);
}
}
}
String Text=“下划线文本。”;
textView.setText(Html.fromHtml(Text),textView.BufferType.SPANNABLE);
检查此项
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");
我希望它只对行中的某些单词执行,而不是对整个行执行。颜色在哪里?
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");