上次发了一篇同一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的更多相关文章

  1. 同一TextView上内容的不同显示

    首先请原谅我不会给文章起名字. . .不能准确的表达出究竟要讲什么,真实智商捉急. 直接上图 如图所看到的显示的是两个textview 第一个实现的是,在同一个textview中给不同内容赋予不同的颜 ...

  2. [Android] TextView上同时显示图标和文字

    需求场景 +----------------------------+ | Icon TEXT | +----------------------------+ 当然,可以使用LineLayout,包 ...

  3. DIV内容超出长度显示省略号,鼠标移上自动显示全部内容(EasyUI DataGrid)

    如果想把DIV中超出的文本显示成省略号,而不是换行全部显示,有2个办法. 注:本文主要是以EasyUI的DataGrid为案例的,如果是其他场景只要底层是用DIV显示文本的应该都能使用. 首先可以给此 ...

  4. android假设给TextView或EditText的email链接加下划线,并在点击在email连接上能够弹框显示

    怎样把textview的一些文字加上背景色: Spannable str = new SpannableString("#fdsfdfsdfdsfd#"); Matcher mat ...

  5. ifrem上传文件后显示

    ifrem上传文件后显示 1.上传文件按钮    <a class="btn btn-primary pull-right" id="data-upload&quo ...

  6. android textview字体加粗 Android studio最新水平居中和垂直居中

    android textview字体加粗 Android studio最新水平居中和垂直居中 Android中字体加粗在xml文件中使用android:textStyle=”bold”但是不能将中文设 ...

  7. css内容过长显示省略号的几种解决方法

    单行文本(方法一): 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) elli ...

  8. PHP JS JQ 异步上传并立即显示图片

    提交页面: <! DOCTYPE html> < html> < head> < meta charset ="GB2312" > ...

  9. ecshop 全站内页 显示最新文章

    一.打开根目录下index.php,找到代码 $smarty->assign('new_articles',    index_get_new_articles());   // 最新文章 进行 ...

随机推荐

  1. 使用Lua的扩展库LuaSocket用例

    目录结构 LuaSocket 是 Lua 的网络模块库,它可以很方便地提供 TCP.UDP.DNS.FTP.HTTP.SMTP.MIME 等多种网络协议的访问操作. 它由两部分组成:一部分是用 C 写 ...

  2. 大型跨境电商 JVM 调优经历

    前提: 某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的运行情况,特别是jvm内存的情况,一直没有一个统一的标准来给到各个应用服务的owner.经过618大促之后,和运维的同学讨 ...

  3. js----Navigator对象,查看浏览器信息,Screen对象,查看屏幕信息

    Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type=" ...

  4. 在drop user之前,建议获取该用户的依赖情况

    在删除这两个用户之前,建议获取这两个用户的依赖情况: SQL> col owner format a15 SQL> col name format a15 SQL> col REFE ...

  5. 基于Redis实现延迟队列

    背景 在后端服务中,经常有这样一种场景,写数据库操作在异步队列中执行,且这个异步队列是多进程运行的,这时如果对同一资源进行写库操作,很有可能产生数据被覆盖等问题,于是就需要业务层在更新数据库之前进行加 ...

  6. linux进程D状态_转

    Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态. 处于这个状态的进程因为等待某某事件的发生(比如等待socket连接.等待信号量),而被挂起.这些进程的task_s ...

  7. Visual Studio中“后期生成事件命令行” 中使用XCopy命令

    将程序所依赖的动态库与其他依赖文件做了分类,使用XCopy命令自动生成相应的目录结构. set source="$(TargetDir)" set output="$(S ...

  8. 第二百二十三节,jQuery EasyUI,ComboBox(下拉列表框)组件

    jQuery EasyUI,ComboBox(下拉列表框)组件,可以远程加载数据的下拉列表组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 C ...

  9. 小白用advanced installer建安装包

    写这篇文章的目的是由于肯定有人跟我一样非常小白,对安装包的构建又好奇.而我自己呢也要mark一下下,so--- 一.VS安装项目 首先关于安装包的构建,实用VS自带建安装项目的方式.网上有个中文工具叫 ...

  10. ZeroMQ一个更小、更快、更简单的智能传输层协议

    这个githube上的教程是非常好的,是个中文翻译,大家直接学这个就行 https://github.com/anjuke/zguide-cn/tree/master/bin 原文地址: https: ...