1、StringFormat
在Strings文件中创建string标签,通过%1 s ! 代 替 s t r i n g 字 符 , s!代替string字符,%2 s!代替string字符,d代替int字符,进行格式化
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
使用案例
btnRxJava.text=resources.getString(R.string.format_word).format("green",10)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
2、HTML标记
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome">Welcome to <b>Android</b>!</string>
</resources>
<b> 表示粗体文本。
<i> 表示斜体文本。
<u> 表示下划线</u> 文本。
前提要对尖括号<>进行html转义
使用案例
string文件
<string name="html_word">Hello, %1$s! You have <b>%2$d new
messages</b>.</string>
调用方法使用Html.fromHtml
tv_hint.text=Html.fromHtml(resources.getString(R.string.html_word).format("Allen",1))
3、Spannable 设置样式
常用属性:
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标
基本使用:
1、ForegroundColorSpan添加前景色
val spannableString=SpannableString("啥是佩奇啊")
val foregroundColorSpan=
ForegroundColorSpan(Color.parseColor("#00ff00"))
spannableString.setSpan(foregroundColorSpan,2,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tv_hint.text=spannableString
效果图
2、BackgroundColorSpan添加背景色
val spannableString=SpannableString("啥是佩奇啊")
val backgroundColorSpan=
BackgroundColorSpan(Color.parseColor("#00ffff"))
spannableString.setSpan(backgroundColorSpan,2,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tv_hint.text=spannableString
效果图
3、RelativeSizeSpan设置放大效果
val spannableString=SpannableString("啥是佩奇啊")
val backgroundColorSpan=
RelativeSizeSpan(1.5f) // 教前一个字体放大1.5倍
spannableString.setSpan(backgroundColorSpan,2,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tv_hint.text=spannableString
效果图
4、StrikethroughSpan设置删除线效果
val spannableString=SpannableString("啥是佩奇啊")
val span=StrikethroughSpan() // 设置删除线spannableString.setSpan(span,2,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tv_hint.text=spannableString
效果图
5、UnderlineSpan设置下划线效果
val spannableString=SpannableString("啥是佩奇啊")
val span=UnderlineSpan() // 设置下划线spannableString.setSpan(span,2,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tv_hint.text=spannableString
效果图
6、StyleSpan设置接粗及倾斜样式
val spannableString=SpannableString("啥是佩奇啊")
val span=StyleSpan(Typeface.BOLD)// 设置加粗
val span2=StyleSpan(Typeface.ITALIC) // 设置倾斜val span3=StyleSpan(Typeface.BOLD_ITALIC) // 设置加粗并倾斜spannableString.setSpan(span,0,2,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
spannableString.setSpan(span2,2,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
spannableString.setSpan(span3,4,spannableString.length,Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tv_hint.text=spannableString
效果图