Android学习之TextView显示html图片的方法

原创 2016年06月02日 11:43:38

今天在使用TextView显示html图片的时候,发现图片展示不出来,因为有很多html标记是不支持的,只支持一部分,效果如下:

这里写图片描述

文字效果有,但是图片出不来

要实现图片的显示需要使用Html.fromHtml的另外一个重构方法:
public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
其中Html.ImageGetter是一个接口,我们要实现此接口,在它的getDrawable(String source)方法中返回图片的Drawable对象才可以。

Spanned sp = Html.fromHtml(html, new Html.ImageGetter() {  
    @Override  
    public Drawable getDrawable(String source) {  
        InputStream is = null;  
        try {  
            is = (InputStream) new URL(source).getContent();  
            Drawable d = Drawable.createFromStream(is, "src");  
            d.setBounds(0, 0, d.getIntrinsicWidth(),  
                    d.getIntrinsicHeight());  
            is.close();  
            return d;  
        } catch (Exception e) {  
            return null;  
        }  
    }  
}, null);  
textView.setText(sp); 

要点:添加网络权限

<uses-permission android:name="android.permission.INTERNET" />  

但是要直接这么用会出异常,因为主线程中不能做耗时操作,所以要开线程运行。

  new Thread(new Runnable() {
            @Override
            public void run() {
                final Spanned sp = Html.fromHtml(html, new Html.ImageGetter() {
                    @Override
                    public Drawable getDrawable(String source) {
                        InputStream is = null;
                        try {
                            is = (InputStream) new URL(source).getContent();
                            Drawable d = Drawable.createFromStream(is, "src");
                            d.setBounds(0, 0, d.getIntrinsicWidth(),
                                    d.getIntrinsicHeight());
                            is.close();
                            return d;
                        } catch (Exception e) {
                            return null;
                        }
                    }
                }, null);
//方式一
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        tv_test.setText(sp);
                    }
                });
//方式二
            /*    tv_test.post(new Runnable() {
                    @Override
                    public void run() {
                        tv_test.setText(sp);
                    }
                });*/

            }

        }).start();

最终效果:

这里写图片描述

版权声明:本文为博主原创文章,码字不易,转载请注明原文地址,谢谢。

Android TextView显示网络图片

前言:程序猿真的是有个通病啊,电梯上就在研究电梯的逻辑代码,走路看到红绿灯也会去研究算法,今天心情不错,于是就发了一个说说,发现某q空间中显示了我发的说说,但是我发的笑脸跟哭脸表情由于网络慢,很久才加...
  • vv_bug
  • vv_bug
  • 2016年11月30日 14:55
  • 1079

TextView加载网络图片HTMLIMG

  • 2013年01月18日 11:41
  • 54KB
  • 下载

Android TextView 显示网络图片,点击放大

http://zhangqian.me/android-textview-%E6%98%BE%E7%A4%BA%E7%BD%91%E7%BB%9C%E5%9B%BE%E7%89%87%EF%BC%8C...
  • woshixiaoning
  • woshixiaoning
  • 2014年06月12日 11:57
  • 541

如何在TextView中显示网络上的图片

方法如下: Thread t = new Thread(new Runnable() { Message msg = Message.obtain(); @Override pu...
  • zzm628
  • zzm628
  • 2015年04月29日 17:20
  • 1043

Android中Textview显示带html文本三-------【Textview显示网络图片】

转自: http://www.cnblogs.com/mxgsa/archive/2012/12/20/2823666.html 上篇遗留下来一个问题就是:显示网络图片,我用andro...
  • xjbclz
  • xjbclz
  • 2016年08月16日 22:45
  • 355

android textView 加载HTML 异步加载网络图片

对于加载html格式内容看法 1.如果只是格式化html文本类的内容,推荐使用textView,省时省力,还能得到很好的效果 2.如果html页面内容涉及到图片,特别是网络图片加载的,个人觉得尽可能的...
  • u014702653
  • u014702653
  • 2016年01月26日 12:16
  • 3754

android textView 加载HTML 异步加载网络图片

对于加载html格式内容看法 1.如果只是格式化html文本类的内容,推荐使用textView,省时省力,还能得到很好的效果 2.如果html页面内容涉及到图片,特别是网络图片加载的,个人觉得尽可能的...
  • u014702653
  • u014702653
  • 2016年01月26日 12:16
  • 3754

TextView显示带图片html的几种处理方式

Textview可以显示基本的HTML标签,如果不知道那些标签,可以查看Android中Textview显示带html文本一-------【HTML标签】! 下面着重说一下Textview显示“im...
  • adamxl
  • adamxl
  • 2013年01月22日 17:35
  • 10259

TextView加载html代码显示图片,并且支持图片放大功能

android
  • furtureWithYou
  • furtureWithYou
  • 2016年12月10日 16:57
  • 1115

Textview显示Html,图文混排,支持图片点击放大

对于呈现Html文本来说,Android提供的Webview控件可以得到很好的效果,但使用Webview控件的弊端是效率相对比较低,对于呈现简单的html文本的话,杀鸡不必使用牛刀。另外如果是在Lis...
  • u010403463
  • u010403463
  • 2015年06月26日 19:29
  • 2452
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习之TextView显示html图片的方法
举报原因:
原因补充:

(最多只允许输入30个字)