TextView 显示 html
来源:互联网 发布:遥感影像匀光匀色软件 编辑:程序博客网 时间:2024/05/16 12:28
HtmlTagHandler
项目地址:cowthan/HtmlTagHandler
简介:TextView 显示 html
支持 TextView 默认支持的所有标签,支持自定义,取代安卓默认的 Html.TagHandler
- 特性
- 支持 TextView 默认支持的标签
- 支持自定义标签,接口类似 Html.TagHandler
1 自定义标签:
/*** 解析<span style=\"{color:#e60012}\">哈哈哈</span>*/public class SpanTagHandler implements HtmlTagHandler.TagHandler { private String fontColor = ""; @Override public void handleTag(boolean open, String tag, Editable output, Attributes attrs) { if(tag.toLowerCase().equals("span")){ if(open){ //开标签,output 是空(sax 还没读到),attrs 有值 for(int i = 0; i < attrs.getLength(); i++){ if(attrs.getLocalName(i).equals("style")){ String style = attrs.getValue(i); //{color:#e60012} fontColor = style.replace("{", "").replace("}", "").replace("color", "").replace(":", ""); } } }else{ //闭标签,output 有值了,attrs 没值 output.setSpan(new ForegroundColorSpan(Color.parseColor(fontColor)), 0, output.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } }}
2 html 转换成 spanned
String content = "<span style=\"{color:#e60012}\">哈哈哈</span>";Spanned s = HtmlTagHandler.fromHtml(content, null, new SpanTagHandler());tv.setText(s);
3 为什么要有这个库
按照安卓默认提供的方式,让 TextView 显示 html 得这样: tv_2.setText(Html.fromHtml(content, null, new Html.TagHandler()));
但是 Html.TagHandler 提供的接口是: public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader)
span 标签默认是不被支持的,所以要自己写的话,要得到 span 标签的文本和 style 属性,但 Attributes 没传出来, 反而传了个 XmlReader 对象出来,XmlReader 对象我不会用
看 android.text.Html 的源码: handleStartTag(String tag, Attributes attributes) 这里其实已经解析出属性了,为何不传出来呢???
所以 HtmlTagHandler 就干了两件事,一是拷出源码,二是更改接口,去掉 XmlReader,换成 Attributes
4 问题
如果直接解析:
String content = "呵呵呵<span style=\"{color:#e60012}\">哈哈哈</span>嘿嘿嘿";
会报错,需要处理成纯 xml 格式
content = "<html><body>" + content + "</body></html>";
0 0
- android TextView 显示HTML
- TextView显示html
- TextView 显示html文本
- TextView 显示html
- TextView 显示html
- TextView 显示 html
- textview显示html数据
- TextView的html样式显示
- TextView通过Html显示图片
- textview实现html的显示
- Html.fromHtml利用Textview显示html文本
- TextView中显示HTML和图片
- TextView显示html图片的方法
- TextView显示html文件中的图片
- Android TextView中显示HTML和图片
- TextView显示html图片的方法
- Android TextView 显示HTML加图片
- 在Textview中显示html语句
- Linux shell命令
- AndroidHttpCapture 网络诊断工具 是一款针对于移动流量劫持而开发的手机抓包软件
- Phone Number 山东省第一届ACM大学生程序设计竞赛(原题) problem A
- java给定日期区间计算其中的周几有几天
- 预报在线:发送短信中,对用户登录的判断和区分一般信息快报和重大信息快报,以选取不同的sql获取不同的用户;
- TextView 显示 html
- git reset revert 回退回滚取消提交返回上一版本
- OpenSSL 使用 base64 编码/解码
- 【Java多线程与并发库】12.java5的Semaphere同步工具
- Snmp协议、串口协议、UDP、TCP/IP协议 的学习与总结
- Material Design 风格 结合使用 Retrofit RxJava Jsoup Mvp 模式的一款资讯类 学习 app
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- 小试1
- TCP/IP网络编程 -- 摘要四五