同一TextView上内容的不同显示(最新)-SpannableString
上次发了一篇同一TextView内容的不同显示这篇文章。
有关颜色的不同显示,我使用了最简单可是也最复杂的方法。忘记使用SpannableString,现又一次发一下,大家參考下。
TextView组件改变部分文字的颜色如今有两种办法,一种是比較笨的方法
:
TextView textView = (TextView)findViewById(R.id.textview);
textView.setText(Html.fromHtml("<font color=\"#ff0000\">红色</font>其他颜色"));
这样的办法上一篇文章已经写了样例这里不作过多说明。
另外一种用到了SpannableString 这个东东。
先举样例:
首先是color文件
<color name="remind">#25a7f2</color>
<color name="sports_value">#3a3f47</color>
然后正题
String str = "路人甲回复路人乙:你是个棒槌!";
SpannableString spanString = new SpannableString(str); spanString.setSpan(Object what, int start, int end, int flags);
四个属性,前三个,第一个是方法,第二个是開始位置 第三个是结束位置,
注意:包括開始位置不包括结束位置
int endTwo=str.indexOf("回复");
int endThree=str.indexOf(":");
spanString.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.remind)), 0, endTwo,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spanString.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.sports_value)), endTwo,
endTwo+2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spanString.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.remind)), endTwo+2,
endThree+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spanString.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.sports_value)), endThree+1,
str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spanString);
上面这个new ForegroundColorSpan(mContext.getResources().getColor(R.color.remind)),是设置字体颜色
换成new BackgroundColorSpan(mContext.getResources().getColor(R.color.remind)),就会变成设置背景颜色
还有非常多诸如超链接。斜体等属性设置就不一一举例了。
自己使用过程中研究掌握的会好一点,
我的作用是给那些不知道这个东东属性的童鞋一个提醒。
最后:效果图:
ps:
欢迎转载,请加地址http://blog.csdn.net/jing110fei/article/details/41249073
同一TextView上内容的不同显示(最新)-SpannableString的更多相关文章
- 同一TextView上内容的不同显示
首先请原谅我不会给文章起名字. . .不能准确的表达出究竟要讲什么,真实智商捉急. 直接上图 如图所看到的显示的是两个textview 第一个实现的是,在同一个textview中给不同内容赋予不同的颜 ...
- [Android] TextView上同时显示图标和文字
需求场景 +----------------------------+ | Icon TEXT | +----------------------------+ 当然,可以使用LineLayout,包 ...
- DIV内容超出长度显示省略号,鼠标移上自动显示全部内容(EasyUI DataGrid)
如果想把DIV中超出的文本显示成省略号,而不是换行全部显示,有2个办法. 注:本文主要是以EasyUI的DataGrid为案例的,如果是其他场景只要底层是用DIV显示文本的应该都能使用. 首先可以给此 ...
- android假设给TextView或EditText的email链接加下划线,并在点击在email连接上能够弹框显示
怎样把textview的一些文字加上背景色: Spannable str = new SpannableString("#fdsfdfsdfdsfd#"); Matcher mat ...
- ifrem上传文件后显示
ifrem上传文件后显示 1.上传文件按钮 <a class="btn btn-primary pull-right" id="data-upload&quo ...
- android textview字体加粗 Android studio最新水平居中和垂直居中
android textview字体加粗 Android studio最新水平居中和垂直居中 Android中字体加粗在xml文件中使用android:textStyle=”bold”但是不能将中文设 ...
- css内容过长显示省略号的几种解决方法
单行文本(方法一): 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) elli ...
- PHP JS JQ 异步上传并立即显示图片
提交页面: <! DOCTYPE html> < html> < head> < meta charset ="GB2312" > ...
- ecshop 全站内页 显示最新文章
一.打开根目录下index.php,找到代码 $smarty->assign('new_articles', index_get_new_articles()); // 最新文章 进行 ...
随机推荐
- Macbook小问题
Macbook小问题 有时候 AppStore 和 Safari,QQ等 无法上网,但 chrome 却是正常的.解决办法:终端输入如下命令,其实是在 kill 掉网卡进程. sudo killall ...
- The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问
以MySql数据库为例,先到http://dev.mysql.com/downloads/connector/python/处下载MysqlConnector for python的连接器. from ...
- HLJU 1042 Fight (种类并查集)
1042: Fight Time Limit: 1 Sec Memory Limit: 128 MB Submit: 26 Solved: 8 [Submit][Status][pid=1042& ...
- 谈谈对MVC、MVP和MVVM的理解
刚出来工作的时候维护过一个老系统,该系统是用微软的ASP(Active Server Pages 动态服务器页面)写的.每一个页面都是一个ASP文件,每一个一个ASP文件中又同时包含了HTML.CSS ...
- C0301 代码块{}的使用,重定向, 从文件中读取行
#!/bin/bash # 从 /etc/fstab 中读行 File=/etc/fstab { read line1 read line2 } < $File # {}代码块, ...
- 【BZOJ】3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(kruskal)
http://www.lydsy.com/JudgeOnline/problem.php?id=3390 .. #include <cstdio> #include <cstring ...
- ie tbody table 兼容方法
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...
- ROS导航之参数配置和自适应蒙特卡罗定位
我们的机器人使用两种导航算法在地图中移动:全局导航(global)和局部导航(local).这些导航算法通过代价地图来处理地图中的各种信息,导航stack使用两种costmaps http://www ...
- MFC中CString.Format的用法
http://www.cnblogs.com/kongtiao/archive/2012/06/13/2548033.html 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CSt ...
- poj 3249(bfs+dp或者记忆化搜索)
题目链接:http://poj.org/problem?id=3249 思路:dp[i]表示到点i的最大收益,初始化为-inf,然后从入度为0点开始bfs就可以了,一开始一直TLE,然后优化了好久才4 ...