您的位置:首页 > 移动开发 > Android开发

Android之textview怎么显示不同的字体,颜色

2016-12-13 22:20 423 查看
在同一个TextView中,若要显示不同样式的字体,一般使用以下两种方式,一种是利用Html,另一种借助于Spannable类。

一、利用html显示不同样式的字体

@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
TextView txt_main=(TextView) view.findViewById(R.id.text_one);
TextView txt_two=(TextView) view.findViewById(R.id.text_two);
String html = "<p><strong>你是小强吗?</strong></p>"
+ "<p><a href=\"http://www.panxiecan.cn\">博客</a>超链接</p><p><font color=\"#aabb00\">颜色1"
+ "</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h6>标题2</h6><p>2>1</p><p>"
;
txt_main.setText(Html.fromHtml(html));


二、利用Spannable显示不同样式字体

// 利用Spannable使“新的来电”和时间同时显示,并且可以分行、以不同的字体大小显示
String allString = "少爷电话\n2016年12月13日";
Spannable WordtoSpan = new SpannableString(allString);
WordtoSpan.setSpan(new AbsoluteSizeSpan(28), 0, 6,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
WordtoSpan.setSpan(new AbsoluteSizeSpan(15), 5, allString.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

txt_two.setText(WordtoSpan);




解:

1、需要先将普通的String型数据转换成Spannable对象;

2、利用Spannable的setSpan()函数设置显示样式。该函数第一个参数表示设置样式,如这里的new AbsoluteSizeSpan(58)是设置字体的字号为58。第二个和第三个参数分别表示起止字符,如(new AbsoluteSizeSpan(58), 0, 4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)表示从第一个到第四个字符字号设置为58。第四个参数自己查。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: