在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. android 下使用GPS 无法获取经纬度的解决方法
  2. FontAwesome-用TextView显示图片
  3. Android开发之自定义View(视图)
  4. Android多级树形列表控件
  5. eclipse paho包对于ActiveMQ持久化订阅者的设置
  6. Android之Translucent Bar半透明栏和immersive bar沉浸式的区别
  7. Android实现自适应正方形GridView Read more: http://blog.cheng
  8. 自定义获取WI-FI列表及相关设置
  9. Android里的Xmpp的理解(消息推送)

随机推荐

  1. Android(安卓)多媒体扫描过程(Android(安
  2. Android(安卓)Support Package
  3. Eclipse Android(安卓)代码自动提示功能
  4. Android(安卓)- 干货收集。
  5. android:cacheColorHint,android:listSel
  6. Android与PC通过USB连接通信(一)
  7. [转」android中的数据库操作
  8. Android四种Activity的加载模式
  9. Android(安卓)中文 API (34) ―― RadioGro
  10. Android联系人数据库全解析(1)