一、简介

TextView使用SpannableString设置复合文本
TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式、事件方面的设置。Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能:
1、BackgroundColorSpan 背景色
2、ClickableSpan 文本可点击,有点击事件
3、ForegroundColorSpan 文本颜色(前景色)
4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
5、MetricAffectingSpan 父类,一般不用
6、RasterizerSpan 光栅效果
7、StrikethroughSpan 删除线(中划线)
8、SuggestionSpan 相当于占位符
9、UnderlineSpan 下划线
10、AbsoluteSizeSpan 绝对大小(文本字体)
11、DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
12、ImageSpan 图片
13、RelativeSizeSpan 相对大小(文本字体)
14、ReplacementSpan 父类,一般不用
15、ScaleXSpan 基于x轴缩放
16、StyleSpan 字体样式:粗体、斜体等
17、SubscriptSpan 下标(数学公式会用到)
18、SuperscriptSpan 上标(数学公式会用到)
19、TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
20、TypefaceSpan 文本字体
21、URLSpan 文本超链接
SpannableString的类架构(部分)
二、方法
1)用SpannableString给TextView对象设置link点击事件方法
第一步:设置string内容
String text="点击我打开activity";
第二步:为string内容添加各种属性,
在这里是拥有SpannableString的ClickableSpan属性
SpannableString spannableString=new SpannableString(text);
spannableString.setSpan(new ClickableSpan() {中间省略Onclic方法}, 3, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
第三步:在TextView中添加上面设置好的文本内容
tv_spannableString.setText(spannableString);
第四步:设置鼠标点击响应事件
这一步在html方法中必须要,现在没有指定autoLink,感觉也是必须要,没这句话编译出错
spannableString.setSpan(new ClickableSpan() {中间省略Onclic方法}, 3, text.length(),
tv_spannableString.setMovementMethod(LinkMovementMethod.getInstance());
2)SpannableString为控件设置各种属性的方法
1、将string类型转化为SpannableString类型对象
SpannableString spannableString=new SpannableString(text);
2、对SpannableString对象执行setSpan方法
spannableString.setSpan(new ClickableSpan() {中间省略Onclic方法}, 3, text.length(), }, 3, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
说明,设置点击事件是使用的ClickableSpan() ,如果想要设置其他效果就用其它的好了,
就是最上面列举的那么多
三、代码实例
效果图
点击之后出现
代码:
fry.ActivityDemo3
package fry;
import java.lang.reflect.Field;
import com.example.textViewDemo1.R;
import com.example.textViewDemo1.R.id;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
public class ActivityDemo3 extends Activity{
private TextView tv_spannableString;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity03);
setTitle("TextViewDemo3");
tv_spannableString=(TextView) findViewById(R.id.tv_spannableString);
/*
* 用SpannableString给TextView对象设置link点击事件方法
* 第一步:设置string内容
*/
String text="点击我打开activity";
/*
* 第二步:为string内容添加各种属性,
* 在这里是拥有SpannableString的ClickableSpan属性
*/
/*
* SpannableString为控件设置各种属性的方法
* 1、将string类型转化为SpannableString类型对象
* 2、对SpannableString对象执行setSpan方法
*/
SpannableString spannableString=new SpannableString(text);
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(ActivityDemo3.this,ActivityDemo2.class);
startActivity(intent);
}
}, 3, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
/*
* Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
* exclusive是 独有的 意思
* 这个属性即是效果独有,不影响前后
*/
/*
* 第三步:在TextView中添加上面设置好的文本内容
*/
tv_spannableString.setText(spannableString);
/*
* 第四步:设置鼠标点击响应事件
* 这一步在html方法中必须要,现在没有指定autoLink,感觉也是必须要
* 没这句话编译出错
*/
tv_spannableString.setMovementMethod(LinkMovementMethod.getInstance());
}
}
/textViewDemo1/res/layout/activity03.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_spannableString" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# SpannableString
# TextView
# 链接
# Android中的SpannableString与SpannableStringBuilder详解
# Android利用SpannableString实现格式化微博内容
# Android SpannableString设置超链接、颜色、字体等属性
# Android TextView中文字通过SpannableString设置属性用法示例
# Android TextView使用SpannableString设置复合文本的方法详解
# Android RichText 让Textview轻松的支持富文本(图像ImageSpan、点击效
# 利用SpannableString和ImageSpan在textview中插入图片的方法
# 在这里
# 必须要
# 这句话
# 转化为
# 第二步
# 第三步
# 第四步
# 鼠标点击
# 好了
# 那么多
# 下划线
# 这一步
# 即是
# 就用
# 大家多多
# 粗体
# 背景色
# 前景色
# 上标
# String
相关文章:
高性能网站服务器配置指南:安全稳定与高效建站核心方案
如何在阿里云虚拟主机上快速搭建个人网站?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
大连网站设计制作招聘信息,大连投诉网站有哪些?
如何构建满足综合性能需求的优质建站方案?
已有域名和空间如何快速搭建网站?
如何选择高效响应式自助建站源码系统?
如何在万网自助建站中设置域名及备案?
安云自助建站系统如何快速提升SEO排名?
如何用腾讯建站主机快速创建免费网站?
兔展官网 在线制作,怎样制作微信请帖?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
教程网站设计制作软件,怎么创建自己的一个网站?
在线教育网站制作平台,山西立德教育官网?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
内部网站制作流程,如何建立公司内部网站?
大型企业网站制作流程,做网站需要注册公司吗?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
制作电商网页,电商供应链怎么做?
如何在阿里云ECS服务器部署织梦CMS网站?
如何使用Golang安装API文档生成工具_快速生成接口文档
如何通过宝塔面板实现本地网站访问?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
内网网站制作软件,内网的网站如何发布到外网?
制作证书网站有哪些,全国城建培训中心证书查询官网?
如何实现建站之星域名转发设置?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何通过老薛主机一键快速建站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
小建面朝正北,A点实际方位是否存在偏差?
如何通过FTP空间快速搭建安全高效网站?
如何通过可视化优化提升建站效果?
如何用5美元大硬盘VPS安全高效搭建个人网站?
宝塔新建站点报错如何解决?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
建站之星CMS五站合一模板配置与SEO优化指南
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
建站之星官网登录失败?如何快速解决?
专业商城网站制作公司有哪些,pi商城官网是哪个?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
山东网站制作公司有哪些,山东大源集团官网?
网页设计与网站制作内容,怎样注册网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
如何自定义建站之星模板颜色并下载新样式?
网页设计网站制作软件,microsoft office哪个可以创建网页?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
如何快速查询网址的建站时间与历史轨迹?
*请认真填写需求信息,我们会在24小时内与您取得联系。