©
このドキュメントでは、php中国語ネットマニュアルリリース
Html
版本:Android 3.2
结构
继承关系
public classHtmlextendsObject
java.lang.Object
android.text.Html
类概述
该类主要用来格式化html格式的文本,像浏览器一样对html标签进行解析,渲染输出,但并不是所有的标签都被支持!(译者注:当然你自定义的标签默认肯定不被支持,但可以通过实现Html.TagHandler这个接口来自我解析。下面会讲到。)
内部类
interface Html.ImageGetter
用来检索HTML中的标签。(译者注:如果实现了这个接口,当解析的时候遇到
标签时会回调ImageGetter的getDrawable(Stringsource)方法,并返回一个Drawable对象,该方法参数为
标签的src属性的值)
interface Html.TagHandler
用来通知当解析器遇到无法识别的标签时该作出何种处理
公共方法
public static SpannedfromHtml(String source)
返回通过TagSoup(TagSoup是一个Java开发符合SAX的HTML解析器授权协议)解析器解析之后的可直接显示的文本,任何则由默认的一般图片所替代,当然也可以通过实现Html.ImageGetter接口来显示真正的图片。
参数
source待处理的html文本
public static SpannedfromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
同上,不同的是当遇到img标签,或解析器无法识别的标签时分别触发注册的两个对象来进行处理。
参数
source为待处理的html文本
imageGetterHtml.ImageGetter对象
tagHandlerHtml.TagHandler的
public static StringtoHtml(Spanned text)
该方法完全可以理解为fromHtml()的可逆函数,将Spanned类型的文本还原为HTML文本。
补充
文章精选
android开发:TextView中显示HTML和图片
android TextView HTML富文本应用
示例代码
publicclassMainextendsActivity { @Override protectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv = (TextView) findViewById(R.id.demo); //貌似都不支持HTML标签的属性,及CSS样式,下面使用到的字体颜色都不被支持 //Stringhtml= "
String html =" tv.setText(Html.fromHtml(html,newHtml.ImageGetter(){ @Override publicDrawable getDrawable(String source) { Drawable myDrawable =null; try{ myDrawable = Drawable.createFromStream(newURL(source).openStream(),"baidu_sylogo1.gif"); }catch(MalformedURLException e) { e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); } myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight()); returnmyDrawable; }},null)); } } |