Spannable相关方法
实现文本链接
其中tv是TextView类型的控件。只需写java代码即可实现链接,无需在xml文件中进行其他的设置。
- SpannableString spanTxt = new SpannableString("欢迎访问我的博客——Killerlegend的博客……");
- spanTxt.setSpan(new URLSpan("http://www.cnblogs.com/killerlegend/"), 0, spanTxt.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
- tv.append("\n"+"\n"+"\n");
- tv.append(spanTxt);
- //让URLSpan可以点击
- tv.setMovementMethod(new LinkMovementMethod());
setSpan方法的定义如下:
public abstract void setSpan (Object what, int start, int end, int flags)
flags含义请参见:
https://developer.android.com/reference/android/text/Spanned.html
下面说几种比较常用的flags,关于下面的这几种flags的意义,都是指定对于在span中新加入字符时如何处理的。
public static final int SPAN_EXCLUSIVE_EXCLUSIVE
public static final int SPAN_POINT_MARK
以上两者等价。均不包含文本首尾。即在该文本的首尾加入新的字符,那么span的设置是不会应用到新加入的字符的。以下其他可以类比推理。
public static final int SPAN_EXCLUSIVE_INCLUSIVE
不包含首,包含尾。
public static final int SPAN_INCLUSIVE_EXCLUSIVE
包含首,不包含尾。
public static final int SPAN_INCLUSIVE_INCLUSIVE
public static final int SPAN_MARK_POINT
以上两者等价。均包含首尾。
常见的Object有:
URLSpan():其中可以为一个网址或者电话号,用于链接比如:
URLSpan("tel:1008611")
BackgroundColorSpan(Color.parseColor(String para))
ForegroundColorSpan(Color.parseColor(String para))
分别用于设置span的背景前景色,其中的para为字符类型。
……(后续仍会加入……)
最后不要忘记了:
Object.setMovementMethod(LinkMovementMethod.getInstance());
Object.setText(span)
以应用span。
Spannable相关方法的更多相关文章
- Index of my articles
65:一个表格说明RelativeLayout中的几个重要属性[Written By KillerLegend] (2013-10-16 21:59) 64:win7修改软件[授权给…]后面的名称 ( ...
- Android中View绘制流程以及invalidate()等相关方法分析
[原文]http://blog.csdn.net/qinjuning 整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简 ...
- 解决数据标准及质量AppScan(测试)安全性问题相关方法
1. SQL注入文件写入(需要用户验证) 解决办法:通过建立过滤器方法,对所有用户输入信息进行清理过滤.通过清理过滤用户输入所包含的危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启 ...
- Hibernate之Session对象的相关方法以及持久化对象的状态
一.持久化对象的状态 站在持久化的角度, Hibernate 把对象分为 4种状态: 持久化状态,临时状态,游离状态,删除状态.Session 的特定方法能使对象从一个状态转换到另一个状 ...
- Hibernate之Session缓存以及操作Session缓存的相关方法
1.Session概述 A.Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法. B. Sessio ...
- Android中View绘制流程以及invalidate()等相关方法分析(转载的文章,出处在正文已表明)
转载请注明出处:http://blog.csdn.net/qinjuning 前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 .同时 ...
- TextView使用Spannable设置复合文本
http://blog.csdn.net/linghu_java/article/details/32053167 Spannable 对文字的编辑减少TextView的拼接并且达到改变一串字符中的部 ...
- Android在View拉丝工艺和invalidate()和其他相关方法
转载请注明出处:http://blog.csdn.net/qinjuning 前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 . ...
- Android-----View绘制流程以及invalidate()等相关方法分析 .
引自:http://blog.csdn.net/qinjuning/article/details/7110211 前言: 本文是我读<Android内核剖析>第13章----View工作 ...
随机推荐
- WebStorm配置(2016/11/18更新)
目录: 1.主题设置 2.模板设置 3.代码段设置 4.快捷键设置 5.显示行号+自动换行 6.配置github 7.常用快捷键 8.软件下载(破解版及汉化包) 1.主题设置 1)ctrl+alt+s ...
- open source e-business software - prestashop
https://www.prestashop.com/en/system-requirements
- Shell学习笔记 - 分支语句
一.单分支if语句 1. 语法格式 if [ 条件判断式 ]; then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 注意:中括号和条件判断式之间必须有空格 2. 示例1:判断登 ...
- hdu 4719 动态规划
思路:dp[i]表示到第i个点为结尾能获得的最大值,那么dp[i]=h[i]*h[i]+dp[i-x]-h[i-x];(i-l<=x<=i);那么我们可以转换下,以dp[i]-h[i]为新 ...
- 转: 学习开源项目的若干建议(infoq)
转: http://www.infoq.com/cn/news/2014/04/learn-open-source 学习开源项目的若干建议 作者 崔康 发布于 2014年4月11日 | 注意:GTLC ...
- w3cschool关于list-style-position时的另外发现
首先list-style-position有inside和outside... 另外发现:设置inline-block时 那个圆点消失了.. <!DOCTYPE html> <htm ...
- a标签中使用img后的高度多了4px
前两天,在做一个网站的时候,发现a标签中使用img后的高度多了4px,各种纠结. 最后,仔细分析,终于找到原因了,因为img是行内元素,默认display: inline; 它与文本的默认行为类似,下 ...
- 正确理解SQL Server的许可证(转)
今天在论坛上看到有人讨论如果使用SQL Server作为SEPM的后台数据库,需要多少个CAL的问题: If I do have to use SQL Server what type of li ...
- C#去掉周六周日的算法
/// <summary> /// 用来获取工作日(不含周六周日) /// </summary> /// <param name="dtSub"> ...
- (转)Android之接口回调机制
开发中,接口回调是我们经常用到的. 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行. 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A ...