在Android中TextView和EditText是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。

废话少说,直接上代码:

package com.qzhousoft.SpannableDemo.ui;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableString;import android.text.Spanned;import android.text.method.LinkMovementMethod;import android.text.style.BackgroundColorSpan;import android.text.style.ForegroundColorSpan;import android.text.style.StyleSpan;import android.text.style.URLSpan;import android.text.style.UnderlineSpan;import android.widget.TextView;/*** <Spannable使用示例> * @author 王乾州*/public class main extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView spannableTextView = (TextView)this.findViewById(R.id.tv);/*** 创建一个 SpannableString对象*/SpannableString sp = new SpannableString(“谷歌超链接、高亮显示、高亮1、高亮2、斜体、下划线.”);/*** 设置超链接*/sp.setSpan(new URLSpan(“http://www.google.com”), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);/*** 设置高亮样式一*/sp.setSpan(new BackgroundColorSpan(Color.RED), 11, 14, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);/*** 设置高亮样式二*/sp.setSpan(new ForegroundColorSpan(Color.YELLOW), 15, 18, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);/*** 设置斜体*/sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 19, 21, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);/*** 设置下划线*/sp.setSpan(new UnderlineSpan(), 22, 25, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);/*** SpannableString对象设置给TextView*/spannableTextView.setText(sp);/*** 设置TextView中的超链接可点击*/spannableTextView.setMovementMethod(LinkMovementMethod.getInstance());}}

注意点:

* 当我们文字中有了超链接时,一般我们必须有网络权限,但是在这里大家不用添加网络权限也可以访问超链接哦。。。

* spannableTextView.setMovementMethod(LinkMovementMethod.getInstance());这句很重要,如果没有这句,超链接是不可点击的。

如果我们文字中包含html标签那我们该如何展示哪,有一个很好的静态方法:

Html.fromHtml()

myTextView.setText(Html.fromHtml(“<font color=\”#330099\”>测试…</font>”));

myTextView.setMovementMethod(LinkMovementMethod.getInstance()); // 如果标签里有链接要加上这句,否则链接无效撒。。。

更多相关文章

  1. android 之对象传递
  2. Android中Intent对象与Intent Filter过滤匹配过程详解
  3. Android NDK开发——操作JNI函数以及复杂对象的传递
  4. Android中对象池的使用
  5. android中使用httpclient方法获得网页内容并对json对象解析
  6. Android解析XML到对象工具类
  7. android 字符串转换成JSON对象
  8. Android中Intent传递对象的两种方法:Serializable & Parcelable
  9. Android Audio代码分析21 - 创建AudioEffect对象

随机推荐

  1. Android(安卓)CountDownTimer倒计时器的
  2. Android为什么会有65536的方法数量限制
  3. MAC下配置android SDK时进度条不动,无法下
  4. Android(安卓)开发环境下载地址 -- 百度
  5. Android启动画面实现
  6. Android数据存储-->SharedPreferences
  7. Android--面试题整理(五)
  8. 相对布局(RelativeLayout)常用属性
  9. Android学习之 VideoView,SurfaceView
  10. 周末小结(五)