Android支持html 的两个接口
1 Spanned android.text.Html.fromHtml(String source)
输入的参数为(html格式的文本)
目前android不支持全部的html的标签,目前只支持与文本显示和段落等标签,对于图片和其他的多媒体,还有一些自定义标签不能识别
2 Spanned android.text.Html.fromHtml(String source, ImageGetter imageGetter, TagHandler tagHandler)
Source: 需处理的html文本
imageGetter :对图片处理(处理html中的图片标签)
tagHandler :对标签进行处理(相当于自定义的标签处理,在这里面可以处理自定义的标签)
在第二个接口中,在实际应用中,需要处理html中的img为网络图片,同时也需要处理一些自定义的标签 如【视频】,下面我就说明这两块的概要实现
【1】 实现ImageGetter获取网络图片
ImageGetter imgGetter = new Html.ImageGetter() { @Override
public Drawable getDrawable(String source) {
Drawable d=null;
try
{
URL aryURI = new URL(source);
/* 打开连接 */
URLConnection conn = aryURI.openConnection(); conn.connect();
/* 转变为 InputStream */
InputStream is = conn.getInputStream();
/* 将InputStream转变为Bitmap */
//Bitmap bm = BitmapFactory.decodeStream(is);
/* 关闭InputStream */
/*添加图片*/
d=Drawable.createFromStream(is, "111");
is.close();
} catch (IOException e)
{
e.printStackTrace();
}
d.setBounds(1, 1, 45, 45);
return d;
}
以上代码已经实际检验过,请放心copy
注:public Drawable getDrawable(String source)
中Source 代表 <img> 标签中的图片路径
【2】 实现 自定义的TagHandler
实现的概要说明:
Step one 继承 TagHandler接口
Step Two 实现
public void handleTag(boolean opening, String tag, Editable output,
XMLReader xmlReader)
接口被调用的过程:
系统在解析html文本
发现tag时调用一次 如<html>
接口传递的参数为 handleTag(true,”html”,output , xmlReader )
发现tag的闭合时,调用接口
接口传递的参数为 handleTag(false,”html”,output , xmlReader )
下面是一个实际执行的例子 给< strike> 标签 中的文字加上横线
public class MyHtmlTagHandler implements TagHandler {
public void handleTag(boolean opening, String tag, Editable output,XMLReader xmlReader) {
if(tag.equalsIgnoreCase("strike") || tag.equals("s")) {
processStrike(opening, output);
}
}
private void processStrike(boolean opening, Editable output) {
int len = output.length();
if(opening) {
output.setSpan(new StrikethroughSpan(), len, len, Spannable.SPAN_MARK_MARK);
} else {
Object obj = getLast(output, StrikethroughSpan.class);
int where = output.getSpanStart(obj); output.removeSpan(obj);
if (where != len) {
output.setSpan(new StrikethroughSpan(), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
private Object getLast(Editable text, Class kind) { Object[] objs = text.getSpans(0, text.length(), kind); if (objs.length == 0) {
return null;
} else {
for(int i = objs.length;i>0;i--) {
if(text.getSpanFlags(objs[i-1]) == Spannable.SPAN_MARK_MARK) {
return objs[i-1];
}
}
return null;
}
}
}
分享到:
相关推荐
例如《8天快速掌握Android视频教程》、《传智播客Android应用开发视频教程》和《黑马程序员Android核心基础视频教程》,这些资源对于初学者非常有帮助,可以提供实战技巧和案例分析。另外还有一些电子书和源码集锦,...
2. 多媒体支持:内建对音频和视频的支持,无需Flash等插件,如和元素。 3. Canvas绘图:提供了一个在网页上进行动态图形绘制的API。 4. SVG矢量图:支持插入和操作矢量图像。 5. Web Storage:提供localStorage和...
在Android平台上,WebApp开发是一项重要的技能,它允许开发者利用Web技术来构建应用程序,从而减少了对原生开发的依赖。本篇文章将深入探讨Android WebApp开发的各个方面,旨在为开发者提供一个全面的理解和实践指导...
另外,Android开发中还包括对触摸事件的处理,这通常涉及到View的OnClickListener、OnTouchListener等接口。通过监听和响应这些事件,开发者可以让应用响应用户的触摸操作,实现交互功能。 总之,《Android 开发...
首先,开发者需要具备扎实的Java基础,包括面向对象的概念、MVC设计模式的应用,以及对HTML、JavaScript和XML的基本了解。这些都是Android开发的基础语言和技术。 在Android组件中,`View`是一个核心类,它提供了...
在Android应用中,JavaScript与原生代码的交互是通过WebView提供的接口实现的。课程将介绍如何使用WebView的addJavascriptInterface方法添加可访问的Java对象,以及如何通过JavaScriptBridge进行双向通信。这使得...
在Android开发中,实现从自己的应用跳转到淘宝商品详情页和优惠券领取页面是一项常见的需求,这通常涉及到第三方应用的深度链接技术。本篇将详细介绍如何实现这一功能,并涉及与之相关的Android知识点。 首先,我们...
2. WebView的使用:加载HTML页面、启用JavaScript支持、调用JavaScript接口与Android通信。 3. JavaScript基础:变量、数据类型、函数、事件处理、AJAX请求等。 4. HTML和CSS:编写静态网页,布局设计,以及使用...
5. **源码分析**:标签提到的“源码”可能意味着资料中会有对部分重要API或组件的源代码分析,帮助开发者深入理解Android系统的内部工作原理。 6. **实战指导**:除了理论知识,API文档通常也会包含实践案例,演示...
我们将基于提供的"AndroidJsTest"项目进行讨论,该项目是一个实战示例,展示了如何在Android环境中利用Web技术构建用户界面。 一、Android与Web技术的融合 Android系统本身支持WebView组件,这是一个内置的浏览器...
WebView不仅支持基本的网页展示,还可以通过JavaScript接口与原生Android代码进行交互,实现数据交换和功能调用。 CSS则是用来控制网页样式和布局的语言,它允许开发者精细地控制元素的外观,如颜色、字体、布局等...
MonkeyRunner提供了丰富的API接口,允许测试人员通过Python脚本控制Android设备或模拟器执行一系列预定义的操作。这些操作包括但不限于安装应用、触发用户界面事件、捕获屏幕截图等。与传统的Monkey工具相比,...
总结来说,"Android经典练习4"是一套综合性的Android进阶实践,涵盖了从网络通信(包括上传数据、视频流媒体、HTTP请求)到UI定制(如自定义ImageView和Html显示),再到服务器端交互等多个关键知识点,为有经验的...
### JAVA+JSP+Servlet+Android+SSH视频教程全集+项目视频知识点解析 #### Java基础知识及应用 Java作为一门跨平台的高级编程语言,在软件开发领域占据着重要的地位。本教程将涵盖Java基础语法、面向对象编程(OOP)...
课程内容分为六个主要阶段,逐步深入地介绍了HTML、CSS、JavaScript、Java语言、Java Web开发、MySQL数据库、JDBC、以及Android开发的核心技术和实战项目。 #### 二、具体知识点详述 ##### 1. HTML+CSS+JavaScript...
7. **毕业设计**: 作为毕业设计的一部分,这个项目展示了学生对Android开发的掌握程度,以及将其应用于实际问题的能力。它不仅考察了编程技术,还考察了问题解决、文档编写和项目展示等多方面能力。 综上所述,这个...
在本项目中,我们关注的是一个基于Android平台的二手商品交易App,该App利用HTML5技术进行开发。这个源码案例旨在提供一个直观的理解和学习...这对于想要涉足混合应用开发的Android开发者来说,是一个宝贵的实战参考。
在Android开发领域,构建一个完整的App来解析并展示知乎上受欢迎的热门话题及高赞答案是一项常见的需求。这个项目"Android-解析知乎上最受欢迎...这是一个涵盖众多核心技能的实战项目,对提升Android开发能力大有裨益。
### 使用HTML、CSS、JavaScript开发Android应用程序 #### 知识点概述 本章节将深入探讨如何利用HTML、CSS、JavaScript等Web技术结合PhoneGap框架来构建Android应用。通过本章节的学习,开发者能够了解到如何使现有...
- **跨平台性**:支持iOS、Android等多平台。 - **易于上手**:基于Web技术栈,学习曲线平缓。 - **丰富的API接口**:提供了包括网络请求、本地存储、多媒体处理在内的众多API。 #### 3. iApp应用场景 - **企业内部...