Android中文API(130) —— Html

来源:互联网 发布:网络贷款诈骗案例 编辑:程序博客网 时间:2024/05/04 16:38

======================================================
注:本文源代码点此下载
======================================================

前言

本章内容是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文本。

补充

文章精选

android开发:textview中显示html和图片

android textview 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='http://www.baidu.com/img/baidu_sylogo1.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^)/