代码应该都能看明白

public class MainActivity extends ActionBarActivity {private TextView tv, tv2;private SpannableString sStr, sStr2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = (TextView) this.findViewById(R.id.textView1);tv2 = (TextView) this.findViewById(R.id.textView2);//创建一个SpannableString对象sStr = new SpannableString("最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞,道一声珍重,道一声珍重,那一声珍重里有蜜甜的忧愁");//设置字体(default,default-bold,monospace,serif,sans-serif)sStr.setSpan(new TypefaceSpan("default"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);sStr.setSpan(new TypefaceSpan("default-bold"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);sStr.setSpan(new TypefaceSpan("monospace"), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);sStr.setSpan(new TypefaceSpan("serif"), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);sStr.setSpan(new TypefaceSpan("sans-serif"), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置字体大小(绝对值,单位:像素),第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素sStr.setSpan(new AbsoluteSizeSpan(20), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);sStr.setSpan(new AbsoluteSizeSpan(20, true), 12, 14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);       //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍   ,0.5表示一半sStr.setSpan(new RelativeSizeSpan(0.5f), 14, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置字体前景色   sStr.setSpan(new ForegroundColorSpan(Color.RED), 16, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置字体背景色   sStr.setSpan(new BackgroundColorSpan(Color.CYAN), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置字体样式: NORMAL正常,BOLD粗体,ITALIC斜体,BOLD_ITALIC粗斜体   sStr.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 20, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); sStr.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 21, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   sStr.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 23, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   sStr.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 23, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置下划线   sStr.setSpan(new UnderlineSpan(), 24, 26, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);             //设置删除线   sStr.setSpan(new StrikethroughSpan(), 26, 28, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置上下标   sStr.setSpan(new SubscriptSpan(), 28, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     sStr.setSpan(new SuperscriptSpan(), 30, 32, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍 ,2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变sStr.setSpan(new ScaleXSpan(2.0f), 32, 34, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置项目符号   sStr.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN), 0 ,sStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色//设置图片   Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());sStr.setSpan(new ImageSpan(drawable), 24, 26, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);tv.setText(sStr);tv.setMovementMethod(LinkMovementMethod.getInstance());sStr2 = new SpannableString("电话邮件百度一下短信彩信进入地图");//超级链接(需要添加setMovementMethod方法附加响应)   sStr2.setSpan(new URLSpan("tel:8008820"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //电话      sStr2.setSpan(new URLSpan("mailto:kejunlu@qq.com"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //邮件      sStr2.setSpan(new URLSpan("http://www.baidu.com"), 4, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //网络      sStr2.setSpan(new URLSpan("sms:10086"), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:   sStr2.setSpan(new URLSpan("mms:10086"), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:   sStr2.setSpan(new URLSpan("geo:32.123456,-17.123456"), 12, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地图 tv2.setText(sStr2);tv2.setMovementMethod(LinkMovementMethod.getInstance());}

效果图:

Android TextView通过SpannableString设置字体、大小、颜色、样式、超级链接相关推荐

  1. android span字体修改,Android TextView使用SpannableString设置复合文本的方法详解

    本文实例讲述了Android TextView使用SpannableString设置复合文本的方法.分享给大家供大家参考,具体如下: TextView通常用来显示普通文本,但是有时候需要对其中某些文本 ...

  2. Android getDimensionPixelSize, 代码中设置字体大小,读xml配置。

    //给一个id为name的TextView设置字体大小  TextView mName = (TextView)findViewById(R.id.name);  mName.setTextSize( ...

  3. web(html运行)设置字体大小、样式及字体名称

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  4. 【最全IDEA个性化教程】idea设置主题+恢复主题默认设置+设置选中代码颜色+关键字颜色+设置字体大小、样式、颜色+设置背景颜色、图片+设置导航栏背景颜色+设置控制台字体样式及背景+常用快捷键)

    目录 下载设置主题样式+恢复主题默认设置 1 个性化代码段 1.1设置颜色 设置光标颜色 自定义图片做背景 修改代码段的颜色和背景颜色 选中代码块颜色修改,修改括号颜色 1.2 设置字体大小.格式 1 ...

  5. div html表格样式设置字体大小,css样式表中如何修改字体大小为18px?

    css样式表中如何修改字体大小为18px?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css样式表中如何修改字体大小为18px? 在css样式表中可以 ...

  6. QFont如何设置字体大小/颜色等?

    1.设置字体的大小: QFont ft;ft.setPointSize(25);//字体大小m_titleLabel->setFont(ft);//其他控件里的字体大小设置也一样 2.设置字体颜 ...

  7. markdown字体大小颜色样式

    我是黑体字 我是宋体字 我是楷体字 I am Times New Roman font I am Georgia font I am Verdana font I am Courier New fon ...

  8. Android 代码中动态设置字体大小-TextView.SetTextSize()

    关键代码 - setTextSize(TypedValue.COMPLEX_UNIT_PX,15); //15像素 - setTextSize(TypedValue.COMPLEX_UNIT_SP,1 ...

  9. TextView 在java中使用Html设置字体大小颜色

    else {tvGouMaiRenShu.setVisibility(View.VISIBLE);tvGouMaiRenShu.setText(Html.fromHtml("剩余<fo ...

最新文章

  1. 非技术成本继续困扰光伏产业
  2. python使用imbalanced-learn的BorderlineSMOTE方法进行上采样处理数据不平衡问题
  3. .net移动端开发_移动端开发1(前端一)
  4. python能做软件开发吗-python代码能做成软件吗
  5. 台式计算机风扇一直响,风扇一直响的原因是什么? 处理方法
  6. 字符设备驱动基础篇0——驱动开发初体验
  7. 中webgl解析json_WebGL蒙皮(下)
  8. NGINX基于Tomcat配置负载均衡
  9. melogin.cn主页登录_melogin.cn登录官网
  10. bigdecimal 设置_BigDecimal 使用方法详解
  11. 《算法导论》之 Problem 5.1-3(随机函数发生器的设计)
  12. HTML标签margin和padding的默认属性值
  13. 计算机网络概述测试,《计算机网络技术基础》 第1章 计算机网络概述 单元测试 附答案...
  14. 解决笔记本WIFI共享网络给黑群晖
  15. 中国大学MOOC测验爬取(下)
  16. Python中num += 1的意思
  17. 直播间实时在线人数方案
  18. vue中使用腾讯地图选择地址
  19. 如何让Python画笔画一个圆
  20. CLIP学习笔记:Learning Transferable Visual Models From Natural Language Supervision

热门文章

  1. 基于php的工厂管理系统,PHP设计模式——工厂模式
  2. mac mysql 默认字符集_MacOS中Mysql设置默认字符集
  3. 手机子王掩码和网关查找_C程序使用位掩码查找奇数或偶数
  4. Redis事务深入解析和使用
  5. SQL Server 不同数据库导入指定数据解决方案
  6. 常用的作业调度算法应用练习
  7. windows下配置caffe-matlab接口
  8. boost asio io_context 没任务不退出
  9. python二维表转一维表_二维表格转换成一维表格
  10. python中csv模块是自带的吗_python csv模块 Python的CSV模块,怎么新建为添加模式