Android TextView显示Html类解析的网页和图片及自定义标签用法示例

 更新时间:2016年07月06日 12:39:12   作者:与时俱进  
这篇文章主要介绍了Android TextView显示Html类解析的网页和图片及自定义标签用法,实例分析了Android中TextView控件的使用技巧,需要的朋友可以参考下

本文实例讲述了Android TextView显示Html类解析的网页和图片及自定义标签。分享给大家供大家参考,具体如下:

Android系统显示HTML网页的最佳控件为WebView,有时候为了满足特定需求,需要在TextView中显示HTML网页、图片及解析自定义标签。

1、TextView显示Html类解析的网页

CharSequence richText = Html.fromHtml("<strong>萝卜白菜的博客</strong>--<a href='http://orgcent.com'>http://orgcent.com</a>");
mTVText.setText(richText);
//此行必须,否则超链接无法点击,ScrollingMovementMethod实现滚动条
mTVText.setMovementMethod(LinkMovementMethod.getInstance());

PS: 如果想同时让内容可滚动和超链接可点击,只要设置LinkMovementMethod即可。因为其继承了ScrollingMovementMethod。关于ScrollingMovementMethod说明,可查看android实现TextView垂直或水平滚动

2、TextView显示Html解析的图片和自定义标签

final String html = "萝卜白菜的博客<img src='http://m3.img.libdd.com/farm3/115/BBE681F0CAFB16C6806E6AEC1E82D673_64_64.jpg'/><mytag color='blue'>自定义</mytag>";
//处理未知标签,通常是系统默认不能处理的标签
final Html.TagHandler tagHandler = new Html.TagHandler() {
int contentIndex = 0;
/**
* opening : 是否为开始标签
* tag: 标签名称
* output:输出信息,用来保存处理后的信息
* xmlReader: 读取当前标签的信息,如属性等
*/
public void handleTag(boolean opening, String tag, Editable output,
          XMLReader xmlReader) {
    if("mytag".equals(tag)) {
      if(opening) {//获取当前标签的内容开始位置
        contentIndex = output.length();
        try {
          final String color = (String) xmlReader.getProperty("color");
        } catch (Exception e) {
          e.printStackTrace();
        }
      } else {
        final int length = output.length();
        String content = output.subSequence(contentIndex, length).toString();
        SpannableString spanStr = new SpannableString(content);
        spanStr.setSpan(new ForegroundColorSpan(Color.GREEN), 0, content.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
        output.replace(contentIndex, length, spanStr);
      }
    }
    System.out.println("opening:" + opening + ",tag:" + tag + ",output:" + output);
}};
//解析图片
final Html.ImageGetter imageGetter = new Html.ImageGetter() {
   public Drawable getDrawable(String source) {
      //在此必须异步加载图片
      Drawable d = null;
      try {
        InputStream is = new DefaultHttpClient().execute(new HttpGet(source)).getEntity().getContent();
        Bitmap bm = BitmapFactory.decodeStream(is);
        d = new BitmapDrawable(bm);
        //setBounds(0, 0, bm.getWidth(), bm.getHeight());
        d.setBounds(0, 0, 200, 300);
      } catch (Exception e) {e.printStackTrace();}
      return d;
   }
};
richText = Html.fromHtml(html, imageGetter, tagHandler);
mTVText.setText(richText);

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android视图View技巧总结》、《Android文件操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》及《Android资源操作技巧汇总

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • 一文详解 Compose Navigation 的实现原理

    一文详解 Compose Navigation 的实现原理

    这篇文章主要介绍了一文详解 Compose Navigation的实现原理,文章通告围绕主题展开详细的相关内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • android中实现指针滑动的动态效果方法

    android中实现指针滑动的动态效果方法

    本次实现的是类似于墨迹天气中轨迹图片上指针随着数值滚动滑动的效果,基本思路是开启线程,控制指针所在的imageview控件的padding属性。
    2013-03-03
  • Flutter Widget之FutureBuilder使用示例详解

    Flutter Widget之FutureBuilder使用示例详解

    这篇文章主要为大家介绍了Flutter Widget之FutureBuilder使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Android自定义view实现车载可调整轨迹线

    Android自定义view实现车载可调整轨迹线

    这篇文章主要为大家详细介绍了Android自定义view实现车载可调整轨迹线,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Android编程实现的身份证、车牌号正则验证工具类实例

    Android编程实现的身份证、车牌号正则验证工具类实例

    这篇文章主要介绍了Android编程实现的身份证、车牌号正则验证工具类,结合实例形式分析了java针对身份证、车牌号数字字符串正则验证操作技巧,需要的朋友可以参考下
    2017-12-12
  • Material Design系列之Behavior实现Android知乎首页

    Material Design系列之Behavior实现Android知乎首页

    这篇文章主要为大家详细介绍了Material Design系列之Behavior实现Android知乎首页的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Flutter开发之Shortcuts快捷键组件的用法详解

    Flutter开发之Shortcuts快捷键组件的用法详解

    在桌面端的开发中,键盘快捷键是非常常见而必要的,Flutter 既然可以开发桌面端应用,那必然要提供自定义快捷键,所以本文就来和大家讲讲Shortcuts组件的简单使用吧
    2023-05-05
  • Android实现搜索本地音乐的方法

    Android实现搜索本地音乐的方法

    这篇文章主要为大家详细介绍了Android实现搜索本地音乐的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Android自定义View实现纵向跑马灯效果详解

    Android自定义View实现纵向跑马灯效果详解

    对于跑马灯效果在我们日常使用的app中还是很常见的,比如外卖app的商家公告就使用了此效果,但是它是横向滚动的,横向滚动多适用于单条信息;但凡涉及到多条信息的滚动展示,用纵向滚动效果会有更好的用户体验,今天我们通过自定义View来看看如何实现纵向跑马灯效果。
    2016-11-11
  • Android持久化保存cookie的方法

    Android持久化保存cookie的方法

    这篇文章主要介绍了Android持久化保存cookie的方法,在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,感兴趣的小伙伴们可以参考一下
    2018-05-05

最新评论