zoukankan      html  css  js  c++  java
  • Android中文API(130) —— Html


    前言

      本章内容是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这个接口来自我解析。下面会讲到。)

     

    内部类

    interface     Html.ImageGetter

    用来检索HTML中的<img>标签。(译者注:如果实现了这个接口,当解析的时候遇到<img> 标签时会回调ImageGettergetDrawable(String source)方法,并返回一个Drawable对象,该方法参数为<img>标签的src属性的值)

     

    interface     Html.TagHandler

    用来通知当解析器遇到无法识别的标签时该作出何种处理

     

     

    公共方法

    public static Spanned fromHtml (String source)

    返回通过TagSoup TagSoup 是一个Java开发符合SAXHTML解析器 授权协议)解析器解析之后的可直接显示的文本,任何<img>则由默认的一般图片所替代,当然也可以通过实现Html.ImageGetter接口来显示真正的图片。

    参数

    source      待处理的html文本

     

             public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)

    同上,不同的是当遇到img标签,或解析器无法识别的标签时分别触发注册的两个对象来进行处理。

    参数

    source               为待处理的html文本

    imageGetter    Html.ImageGetter对象

    tagHandler       Html.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 = "<h2>html测</h2><pstyle='color:red;'>这是测试内容</p><p><img src='http://www.baidu.com/img/baidu_sylogo1.gif'></p>";

    String html = "<h2>html测试</h2><p font='red'>这是测试内容</p><p><img src='http://www.baidu.com/img/baidu_sylogo1.gif'></p>";

         

          tv.setText(Html.fromHtml(html,new Html.ImageGetter(){

     

            @Override

            public Drawable getDrawable(String source) {

               Drawable myDrawable = 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));

       }

     

    }

     

     

  • 相关阅读:
    Python获取当前 年 月 日
    HTML5手机应用的最大优势就是可以在网页上直接调试和修改
    使用PostSharp在.NET平台上实现AOP
    HTML5的设计目的是为了在移动设备上支持多媒体
    中法两国还将在中非、东非携手加强基础设施建设、安全、金融、能源、维和护航、医药卫生和教育培训等领域全面展开合作
    中国“互联网+”战略与欧洲单一数字市场建设、欧洲智慧城市建设等项目
    全球价值链的分工,‘国际产能合作’将带动全球产业链的调整
    中国在全球经济格局以及产业链条上的地位已今非昔比
    Bitmap Image Graphics
    C#利用WebClient 两种方式下载文件
  • 原文地址:https://www.cnblogs.com/over140/p/2163390.html
Copyright © 2011-2022 走看看