`

android对html支持接口总结

阅读更多

项目中往往需要显示一段文本,如果对文本需要特定的效果,就要写自定义的span,这样的工作量会变得很大,目前android支持html格式的文本,下面就是我对android支持html的程度和使用方式的总结。

 

Android支持html 的两个接口

 

1   Spanned android.text.Html.fromHtml(String source)

输入的参数为(html格式的文本)

 

目前android不支持全部的html的标签,目前只支持与文本显示和段落等标签,对于图片和其他的多媒体,还有一些自定义标签不能识别

 

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

}
复制代码
 
 
分享到:
评论

相关推荐

    Android HTMLViewer

    例如,它可能增加了对HTML5新特性的支持,提高了渲染速度,优化了内存管理和电池消耗,甚至添加了分享、书签等功能。 **总结** Android HTMLViewer 是Android平台上一款专用于查看HTML内容的应用,它利用WebView...

    android嵌套HTML的程序,相互间传值

    总结,Android与H5的交互是移动开发中的常见需求,通过合理的数据传递机制,我们可以实现两者之间的深度融合,为用户提供更丰富的功能和体验。在实践过程中,注意安全性和性能优化,确保应用的稳定性和用户数据的...

    Android原生java语句 和html js互相调用 传递参数

    总结来说,Android与HTML JavaScript的互调主要依赖`WebView`的`addJavascriptInterface`和`loadUrl`方法。Java端创建一个对象并暴露给JavaScript,JavaScript端通过`window对象`调用这些方法。同时,Android也可以...

    android获取html表单数据

    总结来说,要在Android中获取HTML表单数据,你需要: 1. 创建并加载WebView。 2. 启用JavaScript执行。 3. 在HTML中编写获取表单数据的JavaScript函数,并调用Android的JavaScript接口。 4. 在Android端创建一个...

    安卓Android源码——webview支持html5视频播放实例.rar

    在Android端定义一个接口,然后在HTML中通过JavaScript调用这个接口来控制视频的播放: ```java webView.addJavascriptInterface(new JavaScriptInterface(this), "Android"); ``` ```javascript // 在HTML中的...

    android与html5的交互——数据库操作,UI操作,以及html5的localStorage、定位功能

    总结起来,Android与HTML5的结合为移动应用开发提供了灵活且强大的工具。通过理解并熟练运用数据库操作、UI交互、localStorage和定位功能,开发者可以构建出功能丰富、用户体验优秀的混合应用。同时,DroidGapDemo...

    android Textview 实现html 图片显示

    总结,针对Android TextView实现HTML图片显示,可以选择WebView方式,它适用于复杂的HTML渲染,而如果只是简单展示图片,使用`Html.fromHtml()`配合自定义`ImageGetter`会更轻量级。两种方法都能实现图片点击的交互...

    androidTextView显示html图片资源实例

    总结一下,Android的TextView可以通过`Html.fromHtml()`和自定义的`ImageGetter`来显示HTML内容中的图片。对于本地资源,需要使用`ImageGetter`来加载和绑定图片;而对于网络资源,`Html.fromHtml()`可以直接处理。...

    Android原生代码与HTML5的交互

    #### 配置Android应用以支持HTML5交互 1. **Manifest文件配置**:首先,在`AndroidManifest.xml`文件中添加Internet权限,这是实现HTML5交互的基础。 ```xml &lt;uses-permission android:name="android.permission....

    android利用html5实现listview并添加下拉刷新

    在Android开发中,为了提供...总结,通过HTML5在Android应用中实现ListView和下拉刷新功能,可以结合Web技术的优势,提高开发效率和用户体验。不过,需要注意性能优化和跨平台兼容性问题,确保应用的稳定性和流畅性。

    HTML5开发Android

    总结来说,HTML5开发Android应用是一种高效且灵活的方式,尤其适用于需要跨平台运行的应用。通过熟练掌握HTML5的相关特性,开发者可以创建出功能丰富、用户体验良好的Android应用,同时利用Hybrid框架可以轻松实现与...

    Android 多样化显示TextView以及扩展Html自定义标签

    在Android中,你可以通过以下步骤来扩展Html的解析功能,以支持自定义标签: 1. **创建一个TagHandler**:实现`Html.TagHandler`接口,重写`handleTag()`方法。在这个方法里,你可以根据标签名进行特定的处理,比如...

    android TextView异步加载HTML(含图片)

    然而,原生的`fromHtml()`方法不支持网络图片的加载,因此我们需要自定义一个`ImageGetter`接口的实现来处理图片。 `new URLImageParser(tv)` 就是自定义的`ImageGetter`实现,这里的`URLImageParser`类会解析HTML...

    Android WebView HTML界面开发 实现拨打电话

    如果HTML需要与Android原生代码交互,可以使用`addJavascriptInterface()`方法添加JavaScript接口,然后在JavaScript中通过`window对象`调用这些接口。 总结,Android WebView是构建混合式应用的重要工具,结合...

    android+html开发

    总结来说,"Android+HTML5"开发模式结合了Android的系统级控制与HTML5的Web开发便捷性,为开发者提供了一种快速构建应用的新途径。通过熟练掌握WebView的使用、HTML5的特性以及混合开发的最佳实践,开发者可以创造出...

    java知识总结 android知识总结和j2ee知识总结

    Android知识总结: Android是基于Linux内核的开源移动操作系统,主要用于智能手机和平板电脑。学习Android开发,你需要掌握以下几个核心概念: 1. Android SDK:包含了开发Android应用所需的工具和库。 2. Activity...

    Android调用html5加载网页

    1. 添加依赖:在`build.gradle`文件中,确保添加了对`WebView`的支持,通常不需要特别添加,因为这是Android SDK的一部分。 2. 布局文件:在XML布局文件中,添加`WebView`控件,例如: ```xml android:id="@+id/...

    android2.1 api 英文 html

    总结,Android 2.1 API英文HTML文档是开发者探索Android 2.1系统的核心资料,它提供了全面的API参考,有助于开发者创建高效、稳定的应用。通过深入研究和实践,开发者可以充分利用这些资源,提升自己的开发技能。

    详解android与HTML混合开发总结

    例如,当需要从HTML5页面获取用户信息或执行特定操作时,JavaScript可以调用暴露的Java接口,这样就可以在Android端处理数据或触发特定行为。同时,Android也可以通过WebView的loadUrl方法调用JavaScript函数,向...

Global site tag (gtag.js) - Google Analytics