SpannableString设置文本背景色
参考内容:
http://blog.csdn.net/harvic880925/article/details/38984705
http://blog.it985.com/14433.html
1.使用SpannableString给textview 文本设置背景色
public class MainActivity extends AppCompatActivity { private TextView tv1;
private TextView tv2;
private int back_color;
private int text_color; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialize();
back_color = ContextCompat.getColor(this,R.color.colorPrimary);
text_color = ContextCompat.getColor(this,R.color.colorAccent);
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,
// 这是在 setSpan 时需要指定的 flag,这几个属性不好理解, 还是直接运行看结果吧
// 它是用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果。
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、
// Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、
// Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、
// Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)。
SpannableString sb1 = new SpannableString("好好学习");
SpannableString sb2 = new SpannableString("天天向上");
sb1.setSpan(new BackgroundColorSpan(back_color),0,sb1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); sb2.setSpan(new ForegroundColorSpan(text_color),0,sb2.length(),Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(sb1).append(sb2);
tv1.setText(ssb);
} private void initialize() {
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
}
}
2.运行截图:
3.给textview设置点击事件
public class MainActivity extends AppCompatActivity {
private TextView tv1;
private TextView tv2;
private int back_color;
private int text_color; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialize();
back_color = ContextCompat.getColor(this,R.color.colorPrimary);
text_color = ContextCompat.getColor(this,R.color.colorAccent);
SpannableString sb1 = new SpannableString("好好学习,hello world");
SpannableString sb2 = new SpannableString("天天向上");
sb1.setSpan(new BackgroundColorSpan(back_color),0,sb1.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE); sb1.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Log.e("click","click");
} @Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);//取消下划线
ds.setColor(text_color);
}
},4,sb1.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE); tv1.setText(sb1);
tv1.setMovementMethod(LinkMovementMethod.getInstance());//必须设置,否则没有点击触发
} private void initialize() {
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
}
}
4.运行效果图
点击 ",hello world" 会触发点击事件!
SpannableString设置文本背景色的更多相关文章
- 利用SpannableString设置文本
private void setTips(){ String big = "大字深色"; String small = "小字淡色"; Spannable ti ...
- Android(java)学习笔记82:利用SpannableString设置复合文本
1. SpannableString设置复合文本: TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来 ...
- background 设置文本框背景图
background 属性的作用是给元素设置背景,它是一个复合属性,常用的子属性如下: background-color 指定元素的背景颜色. background-image 指定元素的背景图像. ...
- SSRS动态设置文本框属性
SSRS可以通过表达式动态设置文本框所有的属性,比如字体,字号,是否加粗,如下图所示: 汉字和数字英文字母占用的空间不一样,一个汉字占用两个数字和英文字母的空间,VB里有LENB取得字节数,这SSRS ...
- Android Material适配 为控件设置指定背景色和点击波纹效果
Android Material适配 为控件设置指定背景色和点击波纹效果,有需要的朋友可以参考下. 大部分时候,我们都需要为控件设置指定背景色和点击效果 4.x以下可以使用selector,5.0以上 ...
- iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮
一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置pla ...
- ligerUI_入门_001_设置文本能否被编辑、事件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery设置文本框值 与获取文本框的值
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- html5权威指南:设置文本样式
css部分---设置文本与字体样式:http://blog.csdn.net/hierarch_lee/article/details/52611250 补充---设置网页文本选中样式:http:// ...
随机推荐
- Tomcat源码分析 (五)----- Tomcat 类加载器
在研究tomcat 类加载之前,我们复习一下或者说巩固一下java 默认的类加载器.楼主以前对类加载也是懵懵懂懂,借此机会,也好好复习一下. 楼主翻开了神书<深入理解Java虚拟机>第二版 ...
- 《机器学习技法》---对偶SVM
1.对偶问题的推导 为什么要求解对偶问题?一是对偶问题往往更容易求解,二是可以自然的引入核函数. 1.1 用拉格朗日函数将原问题转化为“无约束”等价问题 原问题是: 写出它的拉格朗日函数: 然后我们的 ...
- (二)c#Winform自定义控件-按钮
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- 前端面试题集锦(一)之HTML部分
前端的发展日新月异,前端开发也早已从原来的切图套页面,变成了现在的非常复杂的技术体系,近期由于找工作,面试了很多家单位,也总结了一部分前端面试中经常会遇到的面试类型,并一一解答.主要分为HTML.CS ...
- Oracle中的转换函数
Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...
- 基于ZooKeeper的三种分布式锁实现
[欢迎关注公众号:程序猿讲故事 (codestory),及时接收最新文章] 今天介绍基于ZooKeeper的分布式锁的简单实现,包括阻塞锁和非阻塞锁.同时增加了网上很少介绍的基于节点的非阻塞锁实现,主 ...
- 大白话5分钟带你走进人工智能-第36节神经网络之tensorflow的前世今生和DAG原理图解(4)
目录 1.Tensorflow框架简介 2.安装Tensorflow 3.核心概念 4.代码实例和详细解释 5.拓扑图之有向无环图DAG 6.其他深度学习框架详细描述 6.1 Caffe框架: 6.2 ...
- 教你用原生CSS写炫酷页面切换效果,跟第三方组件说拜拜
因为项目需要,别人想让我给他写一个个人博客,并且给了我一个其他人的网页,可以点此查看.有的同学可能说了,第三方博客框架这么多,为什么还要去手写的,你说这个有可能是没有看到打开这个博客. 样式介绍 给大 ...
- go 学习笔记之详细说一说封装是怎么回事
关注公众号[雪之梦技术驿站]查看上篇文章 猜猜看go是不是面向对象语言?能不能面向对象编程? 虽然在上篇文章中,我们通过尝试性学习探索了 Go 语言中关于面向对象的相关概念,更确切的说是关于封装的基本 ...
- JD面试 || 移除教室人数
在昨天参加了东哥的笔试,选择题做的还算可以,但是还有道编程题和关于jdk8的Stream特性难住了.鉴于此用博客总结一下这道编程题,并结合Stream特性来简化代码,熟悉Api. 题目描述 某校在积极 ...