2019独角兽企业重金招聘Python工程师标准>>>

在Android中,TextView是我们最常用的用来显示文本的控件。

一般情况下,TextView中的文本都是一个样式。那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。

  //创建一个 SpannableString对象    SpannableString msp = new SpannableString("字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴综合");   //设置字体(default,default-bold,monospace,serif,sans-serif)  msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  msp.setSpan(new TypefaceSpan("serif"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置字体大小(绝对值,单位:像素)   msp.setSpan(new AbsoluteSizeSpan(20), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  msp.setSpan(new AbsoluteSizeSpan(20,true), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。  //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍  msp.setSpan(new RelativeSizeSpan(0.5f), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //0.5f表示默认字体大小的一半  msp.setSpan(new RelativeSizeSpan(2.0f), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //2.0f表示默认字体大小的两倍  //设置字体前景色  msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置前景色为洋红色  //设置字体背景色  msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置背景色为青色  //设置字体样式正常,粗体,斜体,粗斜体  msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常  msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗体  msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜体  msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜体  //设置下划线  msp.setSpan(new UnderlineSpan(), 27, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置删除线  msp.setSpan(new StrikethroughSpan(), 30, 33, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置上下标  msp.setSpan(new SubscriptSpan(), 34, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //下标     msp.setSpan(new SuperscriptSpan(), 36, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上标              //超级链接(需要添加setMovementMethod方法附加响应)  msp.setSpan(new URLSpan("tel:4155551212"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //电话     msp.setSpan(new URLSpan("
mailto:webmaster@google.com
"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //邮件     msp.setSpan(new URLSpan("
http://www.baidu.com
"), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //网络     msp.setSpan(new URLSpan("sms:4155551212"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:  msp.setSpan(new URLSpan("mms:4155551212"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:  msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地图     //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍  msp.setSpan(new ScaleXSpan(2.0f), 49, 51, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变  //设置项目符号  msp.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN), 0 ,53, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色  tv_textView.setText(msp);  tv_textView.setMovementMethod(LinkMovementMethod.getInstance());

转载于:https://my.oschina.net/u/1455799/blog/204246

android TextView中文字通过SpannableString设置属性相关推荐

  1. Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性

    在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及 ...

  2. Android TextView中图文混排设置行间距导致高度不一致问题解决

    Android TextView中图文混排设置行间距导致高度不一致问题解决 参考文章: (1)Android TextView中图文混排设置行间距导致高度不一致问题解决 (2)https://www. ...

  3. Android TextView跑马灯效果与设置文字阴影

    TextView跑马灯效果的实现 自定义 一个TextView public class MusicDesText extends TextView {public MusicDesText(Cont ...

  4. Android TextView中设定个别文字字体显示格式

    Android TextView中设定个别文字字体显示格式 文章分类:移动开发 用Html来格式化字符,例如要实现如下的显示: "这只是一个测试字符串,测试黑体字.斜体字.下划线.红色字的显示." 可 ...

  5. android textView 替文字添加下划线 删除线

    android textView 替文字添加下划线 删除线 方法1: tv=(TextView)findViewById(R.id.tv); tv.getPaint().setFlags(Paint. ...

  6. android textview显示表情,在Android TextView中显示表情符号/情感图标

    我在Android TextView中显示表情符号图标时遇到一些问题 首先,我在这里找到了Unicode表情符号图标列表:http : //www.easyapns.com/category/just ...

  7. Android TextView中的文字通过SpannableString,设置不同的颜色,字体,不同文字段的点击事件

    SpannableString其实和String一样,都是一种字符串类型,SpannableString可以直接作为TextView的显示文本,不同的是SpannableString可以通过使用其方法 ...

  8. Android自定义view,圆形的TextView,并通过xml设置属性,AttributeSet中取值

    Android自定义view设置xml属性 一个圆形的自定义TextView,通过xml来设置背景颜色的属性 values/attrs <declare-styleable name=" ...

  9. android button 中文字位置设置,iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色...

    btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...

最新文章

  1. 目前常用的服务器端网络操作系统有,目前常用的服务器端网络操作系统是()。...
  2. angular中的class写三元表达式 和 清空表单校验
  3. C++知识点42——下标运算符[]的重载及string类的实现
  4. posix自定义消息队列_消息队列开源框架,基于Io,节约服务器资源
  5. Tensorflow实现MNIST数据自编码(3)
  6. python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别
  7. 前端学习(2226):react之状态
  8. QTP和WinRunner区别
  9. ./4.sh: No such file or directory
  10. elixir 高可用系列 - 目录
  11. Emacs之快捷键大全
  12. 听通灵人说自己的感悟
  13. OA办公系统 Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器
  14. 超星网络学生登录入口 附使用教程
  15. 苹果手机为什么Apple ID会被停用
  16. 教你用人工智能写文章写歌词写对联
  17. 四、项目成本管理(输入/工具与技术/输出)
  18. 如何让iPad变成Mac的扩展屏幕
  19. 设置单选框radio不可选(禁用)
  20. RHEL下编译wireshark源码

热门文章

  1. Javascript模块化编程系列一: 模块化的驱动
  2. java获取系统dpi_java中如何获得打印机的dpi
  3. I2C通信读写数据过程
  4. Vscode合并develop代码分支到master开发分支
  5. MySQL使用Navicat导出Excel时数字展示会变成科学计数法
  6. Redis在本地安装与启动
  7. Vue调试工具 vue-devtools的安装
  8. TaskService API
  9. 在arm上运行x86动态库_苹果官宣:Arm取代英特尔
  10. 【爬虫剑谱】二卷7章 实战篇-搭建IP代理池绕过反爬检测