SpannableStringBuilder实现一个控件字体不同的字体风格
来源:互联网 发布:淘宝衣服代购靠谱吗 编辑:程序博客网 时间:2024/05/28 15:55
写给自己的话:如果只是为了解决眼前的问题去百度去google而应急这本身没错,但是如果只是救了急而不去消化掉,那永远也不可能进步,多勤于总结消化吸收才能更快的进步.
最近在做一个商城类项目,注册时需要弹出一些信息,但是内容又是不一样的颜色,大小,刚开始是打算使用Html标签来写,通过TextView.setText(Html.fromHtml("内容"))来写的,但是由于标签学的很烂,这么简单的标签都没写出来,偶然的关系看到关注的郭大神的公众号推送了SpannableStringBuilder这个类,当然同时也了解到了SpannableString这个类,可谓收益匪浅呀,下面就来展示一下实现的效果,这里只看核心的功能,由于只是一个介绍核心功能的小demo,所以布局代码尽量做到简单,以便一看就懂.需要其它的可以再加入:
1:首先上布局,这里是一个TextView,当然EditText也是可以的,可以试一下:
<TextView android:gravity="center" android:id="@+id/tv" android:layout_width="200dp" android:layout_height="200dp" />
TextView textView = (TextView) findViewById(R.id.tv); SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("提示\n请确认上家邀请码是:1\n请确认上家昵称是:田田"); //这里支持其它颜色设置方式,比如16进制的Color.parseColor("#ff0000") ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.RED); ForegroundColorSpan foregroundColorSpan1 = new ForegroundColorSpan(Color.parseColor("#ff0000")); //设置绝对字体大小(单位是像素),还有相对字体大小 AbsoluteSizeSpan absoluteSizeSpan = new AbsoluteSizeSpan(40); AbsoluteSizeSpan absoluteSizeSpan2 = new AbsoluteSizeSpan(60); AbsoluteSizeSpan absoluteSizeSpan3 = new AbsoluteSizeSpan(60); //将设置的属性添加给TextView的内容 //第一个参数就是上面的颜色属性, //2是从index为2的字符开始 //8是把这个属性应用到第7个结束,包含头不包含尾 //第四个值一共有4个常量,可以一一试试看代表什么意思 spannableStringBuilder.setSpan(foregroundColorSpan, 13, 14, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); spannableStringBuilder.setSpan(foregroundColorSpan1, 24, 26, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); spannableStringBuilder.setSpan(absoluteSizeSpan, 13, 14, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); spannableStringBuilder.setSpan(absoluteSizeSpan2, 0, 2, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); spannableStringBuilder.setSpan(absoluteSizeSpan3, 24, 26, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); textView.setText(spannableStringBuilder);
参考博客:http://blog.csdn.net/harvic880925/article/details/38984705
http://www.jianshu.com/users/769d3d3a9d4b
Demo:https://github.com/Tom1991/SpannableStringBuilder
0 0
- SpannableStringBuilder实现一个控件字体不同的字体风格
- VC++ 设置控件字体,实现不同控件不同字体!
- TextView设置不同的字体风格
- TextView中设置不同的字体风格
- 自定义view控件之TextView可以包含两种不同的字体风格
- 在一个UILabelView中实现不同的字体和颜色
- 在一个UILabel中实现不同的字体和颜色
- TextView代码动态实现字体不同大小样式风格颜色
- 用TextView实现Rich Text---在同一个TextView中设置不同的字体风格
- 用TextView实现Rich Text---在同一个TextView中设置不同的字体风格
- 一个控件(View或者是其他控件)设置不同的字体颜色
- 在同一个TextView中设置不同的字体风格
- sdk 开发中引入不同的字体风格
- 设置一个对话框的字体,以及所有控件字体
- 实现不同字体颜色的TextView
- android TextView控件如何解决一个文本中出现不同大小的字体
- iOS 一个控件内字符显示不同的字体,大小和颜色
- JAVA---不同的字体
- 转:十进制小数转化为二进制小数
- java内存
- pyqt4连接sqlite数据库并通过qtableview显示出来
- 进程内存数据的操作
- 服务器上搭建git仓库与钩子hook的配置
- SpannableStringBuilder实现一个控件字体不同的字体风格
- java,jsp,javaweb毕业设计,期末作业运行环境搭建教程
- 树梅派应用29:树莓派Zero族群扩展板
- 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据
- c语言关键字和数据类型
- springboot配置文件application.properties中的配置项
- Java异常处理总结
- 02 KVM内部
- Android 技术之RecyclerView的基本使用(再不学会你就out了)