TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置
myTextView = (TextView) this.findViewById(R.id.myTextView);
  //创建一个 SpannableString对象   
  SpannableString sp = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体.");   
  //设置超链接   
  sp.setSpan(new URLSpan("http://www.baidu.com"), 5, 7,   
  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   
  //设置高亮样式一   
  sp.setSpan(new BackgroundColorSpan(Color.RED), 17 ,19,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
  //设置高亮样式二   
  sp.setSpan(new ForegroundColorSpan(Color.YELLOW),20,24,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);   
  //设置斜体   
  sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 27, 29, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);   
  //SpannableString对象设置给TextView   
  myTextView.setText(sp);   
  //设置TextView可点击

myTextView.setMovementMethod(LinkMovementMethod.getInstance());

关键方法:
public void setSpan (Object what, int start, int end, int flags)

下面是一个详细的例子:

public class TextViewJump2Activity extends Activity {private TextView mClickableText;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);LinearLayout layout = new LinearLayout(this);mClickableText = new TextView(this);mClickableText.setClickable(true);mClickableText.setTextSize(20);layout.addView(mClickableText);setContentView(layout);mClickableText.setText(getClickableSpan());mClickableText.setMovementMethod(LinkMovementMethod.getInstance());}private SpannableString getClickableSpan() {View.OnClickListener l = new View.OnClickListener() {public void onClick(View v) {Toast.makeText(TextViewJump2Activity.this, "Click Success", Toast.LENGTH_SHORT).show();//在这里就可以做跳转到activity或者弹出对话框的操作了}};SpannableString spanableInfo = new SpannableString("This is a test, Click Here!");int start = 16;int end = spanableInfo.length();spanableInfo.setSpan(new Clickable(l), start, end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);return spanableInfo;}
}

SpannableString 给TextView添加不同的显示样式相关推荐

  1. Element Tree 树形控件自定义显示样式与hover事件绑定实现添加、删除和修改

    Element Tree 树形控件自定义显示样式与hover事件绑定实现添加.删除和修改 最近在搞erp项目对应后台的管理功能,为了加速开发使用了 vue-element-admin 开发,使用的是e ...

  2. Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息

    1,介绍 该示例使用的是 r95版本Three.js库. 主要实现功能:引用养殖场模型进行展示,轨道控制器设置,模型沿着路线运动,使用OutlinePass给模型添加边框,自定义样式显示标签,点击模型 ...

  3. TextView内可以有多种样式吗?

    是否可以在TextView中为不同的文本设置多种样式? 例如,我将文本设置如下: tv.setText(line1 + "\n" + line2 + "\n" ...

  4. Android中实现为TextView添加多个可点击的文本

    这篇文章主要介绍了Android中实现为TextView添加多个可点击的文本,可实现类似Android社交软件显示点赞用户并通过用户名称进入该用户主页的功能,是非常实用的技巧,需要的朋友可以参考下.具 ...

  5. android 怎么加链接地址,Android TextView添加超链接的方法示例

    本文实例讲述了Android TextView添加超链接的方法.分享给大家供大家参考,具体如下: public class Link extends Activity { @Override prot ...

  6. 修改左侧导航显示样式(转载自Sunmoonfire's artistic matrix)

    这是一片非常好的文章,修改下CSS就可以改变左侧导航栏的样式,在网上找了一些都是要写代码的.怕连接失效,所以直接将文章考了过来,希望作者原谅,如有不妥,请通知一声,我会将文章删掉! WSS3SDK之: ...

  7. android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...

    现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...

  8. 博客园修改页面显示样式

    博客园修改页面显示样式 一.总结 HTML源码吧(FireBug或审查元素) 火狐浏览器下通过FireBug插件来查看源码 二.打造自己的博客园页面 刚接触博客园时,总有一种要定制打造自己博客页面的冲 ...

  9. python字体描边_Android为TextView添加字体库和设置描边的方法

    一.使用系统自带的字体 开发Android的人大多都知道,Android里面对字体的支持少得可怜,默认情况下,TextView 的 typeface 属性支持 sans.serif和monospace ...

  10. 修改织梦cms文章页关键词内链显示样式

    讲解了如何修改网站文件,实现文章页自动添加关键词内链锚文本. 不少朋友实现了文章页关键词内链,但想修改一下关键词的显示样式,比如显示的颜色或大小等等,不知道从哪里修改. 这个只需要修改一下当前所使用的 ...

最新文章

  1. 飞越难关,飞书生态「战疫工具箱」来驰援!
  2. 1521 error1
  3. logstic 回归
  4. Web布局连载——两栏固定布局(五)
  5. linux centos更换用户名和密码忘记了,centos7系统中忘记root管理员账号密码,怎么修改密码的解决方式...
  6. 分区格式化并给用户设定配额
  7. wireshark使用_使用 Wireshark 抓取数据包
  8. spark任务提交流程源码分析
  9. linux mutex 数量上限,互斥量mutex
  10. 二叉搜索树的后序遍历序列(important!)
  11. 记一次mongdb搭建复制集的小故障
  12. JS中简单数据类型和复杂数据类型
  13. 遗传算法之:Hello World
  14. 效果降临日历2009
  15. 配合字体图标的搜索框
  16. UFS 3.1协议分析(第一至四章) -- UFS概述
  17. SMURF(5R)-Science封面文章使用的16S新流程(二)
  18. iPhone 小技巧/实用功能
  19. Python实现学生管理系统(功能全面)
  20. putty下载linux文件到本地windows

热门文章

  1. 无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域。...
  2. 关于matlab中get和set的用法
  3. iphone怎么换手机铃声?只需要一招 iRingg
  4. Mac 电脑下搭建DOSBox汇编环境
  5. 如何让Tuxera NTFS总是挂载不干净的卷?
  6. [svc]Linux中Swap与Memory内存简单介绍
  7. 面向对象PHP之Clone对象
  8. 通用测绘成果质检软件
  9. ListView的adapter中getView方法一直调用
  10. windows 架设SVN服务器