======================================================
注:本文源代码点此下载
======================================================
前言
本章内容是android.text.html,版本为android 3.2 r1,翻译来自"pignut",欢迎访问他的博客:"www.pignut.net",再次感谢"pignut"!欢迎你一起参与android的中文翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com/
android中文翻译组:http://goo.gl/6vjql
html
译者署名: pignut
译者链接:www.pignut.net
版本:android 3.2
结构
继承关系
public class html extends object
java.lang.object
android.text.html
类概述
该类主要用来格式化html格式的文本,像浏览器一样对html标签进行解析,渲染输出,但并不是所有的标签都被支持!(译者注:当然你自定义的标签默认肯定不被支持,但可以通过实现html.taghandler这个接口来自我解析。下面会讲到。)
内部类
interfacehtml.imagegetter
用来检索html中的标签。(译者注:如果实现了这个接口,当解析的时候遇到 标签时会回调imagegetter的getdrawable(string source)方法,并返回一个drawable对象,该方法参数为标签的src属性的值)
interfacehtml.taghandler
用来通知当解析器遇到无法识别的标签时该作出何种处理
公共方法
public static spanned fromhtml (string source)
返回通过tagsoup (tagsoup 是一个java开发符合sax的html解析器 授权协议)解析器解析之后的可直接显示的文本,任何则由默认的一般图片所替代,当然也可以通过实现html.imagegetter接口来显示真正的图片。
参数
source待处理的html文本
public static spanned fromhtml (string source, html.imagegetter imagegetter, html.taghandler taghandler)
同上,不同的是当遇到img标签,或解析器无法识别的标签时分别触发注册的两个对象来进行处理。
参数
source为待处理的html文本
imagegetterhtml.imagegetter对象
taghandlerhtml.taghandler 的
public static string tohtml (spanned text)
该方法完全可以理解为fromhtml()的可逆函数,将spanned 类型的文本还原为html文本。
补充
文章精选
示例代码
public class main extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
textview tv =(textview) findviewbyid(r.id.demo);
// 貌似都不支持html标签的属性,及css样式,下面使用到的字体颜色都不被支持
//string html = "html测
这是测试内容
src='https://i-blog.csdnimg.cn/blog_migrate/1fd91ba038a4a5190edd6da965aa6017.gif'>
";
string html = "html测试
这是测试内容
";
tv.settext(html.fromhtml(html,new html.imagegetter(){
@override
public drawable getdrawable(string source) {
drawablemydrawable = null;
try {
mydrawable =drawable.createfromstream(new url(source).openstream(), "baidu_sylogo1.gif");
} catch (malformedurlexception e) {
e.printstacktrace();
} catch (ioexception e) {
e.printstacktrace();
}
mydrawable.setbounds(0,0, mydrawable.getintrinsicwidth(), mydrawable.getintrinsicheight());
return mydrawable;
}},null));
}
}
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/