Android中如何给TextView添加下划线、设置不同字体和颜色

时间:2021-07-16 06:11:57

一、如何给TextView添加下划线以及点击跳转

String txt = "点击跳转到百度";
SpannableString spannableString = new SpannableString(txt);
spannableString.setSpan(new ClickableSpan() {
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(getResources().getColor(R.color.red)); //设置下划线颜色
ds.setUnderlineText(true); // 显示下划线
}

@Override
public void onClick(View view) { // TextView点击事件
String pageUrl = "http://www.baidu.com";
if (!TextUtils.isEmpty(pageUrl)) {
WebViewActivity.toHere(getActivity(), pageUrl, "百度", false);
}
}
}
}, 0, txt.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_goto_web.setText(spannableString);
tv_goto_web.setMovementMethod(LinkMovementMethod.getInstance());

二、如何给TextView文本设置不同字体大小和颜色?

1、设置不同颜色

private String setFontColorSize(String label, int digit) {
StringBuilder sb = new StringBuilder();
sb.append("<font color='#EFEFEF'>" + label + "</font>")
.append("<font color='#ffffff'>" + digit + "</font>");
return sb.toString();
}
2、设置不同字体大小以及字体颜色

//设置不同字体样式的文本
private SpannableString setDiffTextStyle(String label, String digit, int label_style, int digit_style) {
String str = label + digit;
SpannableString ss = new SpannableString(str);
ss.setSpan(new TextAppearanceSpan(MyAssetActivity.this, label_style), //R.style.DDqbProfitTextViewLabelStyle
0, label.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new TextAppearanceSpan(MyAssetActivity.this, digit_style), //R.style.DDqbProfitTextViewDigitStyle
label.length(), str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

return ss;
}
style.xml:

<!--年化收益率 不同字体style-->
<style name="DDqbProfitTextViewLabelStyle">
<item name="android:textColor">@color/Ddqb_Color_9FA2A6</item>
<item name="android:textSize">@dimen/txt_size16</item>
</style>
<style name="DDqbProfitTextViewDigitStyle">
<item name="android:textColor">@color/Ddqb_Color_9FA2A6</item>
<item name="android:textSize">@dimen/txt_size18</item>
</style>