android-tip-关于SpannableString的使用
如果想单独设置TextView上其中几个字的样式,该怎么办?
1 SpannableString name = new SpannableString("abc");
ForegroundColorSpan nameSpan = new ForegroundColorSpan(Color.BLUE);
name.setSpan(nameSpan, 0, name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(name);
2. 使用SpannableStringBuilder构造复杂的样式
1 SpannableStringBuilder spanBuilder = new SpannableStringBuilder();
2 // name
3 SpannableString name = new SpannableString("name");
4 ForegroundColorSpan nameSpan = new ForegroundColorSpan(Color.BLUE);
5 name.setSpan(nameSpan, 0, name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
6 spanBuilder.append(name);
7
8 // msg
9 SpannableString msg = new SpannableString("msg");
ForegroundColorSpan msgSpan = new ForegroundColorSpan(Color.RED);
msg.setSpan(msgSpan, 0, msg.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spanBuilder.append(msg);
14 textView.setText(spanBuilder);
// image
SpannableString image = new SpannableString("image");
ImageSpan imageSpan = new ImageSpan(ctx, imageResourceId, DynamicDrawableSpan.ALIGN_BASELINE);
image.setSpan(imageSpan, 0, image.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(image);
4. 为文字设置点击事件
1 // name
2 ClickableSpan clickSpan = new ClickableSpan() {
3
4 @Override
5 public void onClick(View widget) {
6 Toast.makeText(context, "clickspan", Toast.LENGTH_LONG).show();
7 }
8 @Override
9 public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
// 去掉下划线
ds.setUnderlineText(false);
// 设置文字颜色
ds.setColor(Color.BLUE);
}
};
SpannableString name = new SpannableString(cmd.srcName() + ":");
name.setSpan(clickSpan, 0, name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
22 textView.setText(name);
注意:默认状态下,TextView不会响应点击事件,还需要这么设置一下:
txtView.setMovementMethod(LinkMovementMethod.getInstance());
android-tip-关于SpannableString的使用的更多相关文章
- Android :TextView使用SpannableString设置复合文本
TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.Bac ...
- Android学习之——SpannableString和TextView的使用及研究
前言 相信大家对Android的TextView的使用已经相当熟悉了,但有没有发现TextView的文字总是那么单调,可以修改的就字体大小,颜色等等.要想实现自定义的文字,就要用到我们今天的主角--S ...
- Android开发之SpannableString具体解释
在实际的应用开发过程中常常会遇到.在文本的不同部分显示一些不同的字体风格的信息如:文本的字体.大小.颜色.样式.以及超级链接等. 普通情况下,TextView中的文本都是一个样式.对于类似的情况.能够 ...
- Android TextView结合SpannableString使用
super.onCreate(savedInstanceState); TextView txtInfo = new TextView(this); SpannableString ss = new ...
- [Android教程]TextView使用SpannableString设置复合文本
TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.Bac ...
- Android(java)学习笔记140:SpannableString类的使用
我们之前说过了我们想实现在TextView组件之中,可以显示URL.Email等特殊信息,这些信息点击可以实现跳转,真正意义上的超链接 要实现上面的需求就要SpannableString这个类. 因为 ...
- Android(java)学习笔记82:利用SpannableString设置复合文本
1. SpannableString设置复合文本: TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来 ...
- Android之TextView的样式类Span的使用详解
Android中的TextView是个显示文字的的UI类,在现实中的需求中,文字有各式各样的样式,TextView本身没有属性去设置实现,我们可以通过Android提供的 Spannab ...
- TextView使用SpannableString设置复合文本(转)
TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.Bac ...
- Android之TextView的Span样式源码剖析
Android中的TextView是个显示文字的的UI类,在现实中的需求中,文字有各式各样的样式,TextView本身没有属性去设置实现,我们可以通过Android提供的 Spannab ...
随机推荐
- 构建docker私有库
前提: ip: 172.16.0.9 docker: Version: 18.05.0-ce 1下载registry docker pull registry 2 建库 将库像 ...
- 给 odoo 的 bom 明细加上位置字段
给 odoo 的 bom 明细加上位置字段 odoo 的 BOM 明细没有位置字段,这可无法用于电子生产中. 摸索了几天,找了一些教程,最终实现了. 在模型中找到 mrp_bom_line 增加自定义 ...
- js 日期正则 转载
天秤水的Blog 博客园 博问 闪存 首页 新随笔 联系 管理 订阅 随笔- 70 文章- 0 评论- 74 最强日期正则表达式 一.简单的日期判断(YYYY/MM/DD): ^\d{ ...
- HDOJ5875(线段树)
Function Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- css loading 效果
.loading{ width:160px; height:56px; position: absolute; top:50%; left:50%; line-height:56px; color:# ...
- java多线程(2) 线程同步
我们对线程访问同一份资源的多个线程之间,来进行协调的这个东西,就是线程同步. 例子1:模拟了多个线程操作同一份资源,可能带来的问题: package com.cy.thread; public c ...
- java代码---------比较随机数的大小---我搞不懂啊
总结:不习惯你在或不在的时候,赶紧走吧 package com.mmm; import java.util.Random; public class wW { public static double ...
- Java-Runoob:Java 方法
ylbtech-Java-Runoob:Java 方法 1.返回顶部 1. Java 方法 在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢? println( ...
- npm 自身的升级
npm 是随 NodeJS 一起发布的包管理工具,默认采用的并不一定是最新版本,某些情况下(比如使用了某个IDE)需要最新版本的 npm , 咋办?单独升级,官方的几种说法的操作比较复杂,本经验就是说 ...
- 模拟admin组件自己开发stark组件之搜索和批量操作
搜索相关,搜索的本质就是从数据库查询出来的数据过滤 用户自定义给出过滤条件joker.py list_display = ('id','title','price',) show_add_btn = ...