Android TextView字体样式设置

在Android的开发中,对字体样式的设置是必不可少的,普通的设置主要包括字体的颜色,大小。这些都太小儿科了,略过。但是当一个TextView要显示多种样式的时候就不一样了。如要求其中的某几个文字加上特殊的颜色,或者字体加大等。别的不多说,先上一个效果图说明下:
这里写图片描述
下面针对上图效果做对应的代码展示:

1.字体加粗
//字体加粗
textview.getPaint().setFlags(Paint.FAKE_BOLD_TEXT_FLAG);
textview.getPaint().setAntiAlias(true);//抗锯齿
2.文字加上中划线(又称删除线)
//中划线(删除线)
textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
textview.getPaint().setAntiAlias(true);//抗锯齿
3.文字加上下划线
// 下划线
textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
textview.getPaint().setAntiAlias(true);
4.文字设置不同的颜色和背景色
SpannableStringBuilder sb = new SpannableStringBuilder("字体多种颜色一&背景色");
sb.setSpan(new ForegroundColorSpan(Color.RED),0,2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(new ForegroundColorSpan(Color.YELLOW),2,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(new ForegroundColorSpan(Color.BLUE), 5, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//背景色
sb.setSpan(new BackgroundColorSpan(Color.GREEN), 7, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);
5.文字设置不同的颜色(html格式)
//字体颜色多样,设置其他样式也可以使用
textview.setText(Html.fromHtml("<font color='red'>字体</font><font color='#00ff00'>多种颜色</font><font color='#0000ff'></font>"));
6.字体样式大小不一(有相对大小和绝对大小)
//字体大小不一
SpannableStringBuilder sb1 = new SpannableStringBuilder("字体大小样式不一");
sb1.setSpan(new AbsoluteSizeSpan(80), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sb1.setSpan(new AbsoluteSizeSpan(40), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//绝对大小
//sb1.setSpan(new RelativeSizeSpan(40), 4, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//相对大小
sb1.setSpan(new AbsoluteSizeSpan(60), 5, sb1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb1);
7.设置文字上标和上标字符大小
sb.append("设置字符上标");
sb.setSpan(new SuperscriptSpan(), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(new RelativeSizeSpan(0.5f),2,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);
8.设置文字下标
sb.append("设置字符下标");
sb.setSpan(new SubscriptSpan(), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);
9.设置文字X方向缩放
//;貌似没有Y方向的缩放,但是我们可以通过设置TextView的大小和X方向缩放实现,在此不举例。
sb.append("设置字体缩放。。。");
sb.setSpan(new ScaleXSpan(2f), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(new ScaleXSpan(0.5f), 4, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);
   到此,简单的例子代码全部上完了,这仅仅是一个思想,在开发过程中需要我们根据不同的情形去使用。如1也可以设置为部分字体加粗,用的方法可以是Html.HtmlFomat()或者是setSpan。2,3同理。在实际的开发过程中,建议讲各个功能分别封装成一个单独的方法,这样用起来比较方便。对于复杂的功能也可以根据需求来封装。由于本人的知识水平能力有限,如果错误或者知识不全面,请提出,共同进步!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值