当前位置: 首页 > news >正文

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));

   }

 

}

 

 

 

相关文章:

  • PHP7 学习笔记(十)会话控制
  • 压力测试的轻量级具体做法
  • 朝着微服务的方向去做一次数据库拆分
  • apache 开机自启动
  • MongoDB的监控首选:mongostat
  • 采用交换机和HUB连接局域网有什么区别?
  • 进行高效数字化转型工作的7个习惯
  • Microsoft Dynamics AX 2012 正式版虚拟机
  • Python学习笔记-实现探测Web服务质量
  • 隐藏文件无法取消隐藏属性的解决[转]
  • 缓存DNS
  • 如何对C++虚基类构造函数
  • echars 动态加载数据
  • How The Kernel Manages Your Memory
  • Linux内存管理--基本概念【转】
  • 【Linux系统编程】快速查找errno错误码信息
  • es6要点
  • Go 语言编译器的 //go: 详解
  • js继承的实现方法
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • leetcode98. Validate Binary Search Tree
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Web Storage相关
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 码农张的Bug人生 - 见面之礼
  • 面试总结JavaScript篇
  • 如何实现 font-size 的响应式
  • 思维导图—你不知道的JavaScript中卷
  • 以太坊客户端Geth命令参数详解
  • 主流的CSS水平和垂直居中技术大全
  • ​ubuntu下安装kvm虚拟机
  • #pragma pack(1)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (九十四)函数和二维数组
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)插入排序
  • (一)基于IDEA的JAVA基础10
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转) Android中ViewStub组件使用
  • (转)linux下的时间函数使用
  • (转载)Google Chrome调试JS
  • ****Linux下Mysql的安装和配置
  • .net 4.0发布后不能正常显示图片问题
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 指南:抽象化实现的基类
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET程序员迈向卓越的必由之路