android教程之textview解析带图片的html示例

代码如下:

public class MainActivity extends Activity {

private Handler handler;
 private String html;
 private TextView tv;
 private ProgressBar bar;

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  // 网上找的html数据
  html = "<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>"
    + "<p><a href=\"http://www.jb51.net">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1"
    + "</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>"
    + "下面是网络图片</p><img src=\"http://www.jb51.net/1207.jpg\"/></body>"
    + "下面是网络图片</p><img src=\"http://www.jb51.net/207.jpg\"/></body></html>";

tv = (TextView) this.findViewById(R.id.id);
  bar = (ProgressBar) this.findViewById(R.id.id_bar);
  tv.setMovementMethod(ScrollingMovementMethod.getInstance());// 滚动

handler = new Handler() {
   @Override
   public void handleMessage(Message msg) {
    // TODO Auto-generated method stub
    if (msg.what == 0x101) {
     bar.setVisibility(View.GONE);
     tv.setText((CharSequence) msg.obj);
    }
    super.handleMessage(msg);
   }
  };

// 因为从网上下载图片是耗时操作 所以要开启新线程
  Thread t = new Thread(new Runnable() {
   Message msg = Message.obtain();

@Override
   public void run() {
    // TODO Auto-generated method stub
    bar.setVisibility(View.VISIBLE);
    /**
     * 要实现图片的显示需要使用Html.fromHtml的一个重构方法:public static Spanned
     * fromHtml (String source, Html.ImageGetterimageGetter,
     * Html.TagHandler
     * tagHandler)其中Html.ImageGetter是一个接口,我们要实现此接口,在它的getDrawable
     * (String source)方法中返回图片的Drawable对象才可以。
     */
    ImageGetter imageGetter = new ImageGetter() {

@Override
     public Drawable getDrawable(String source) {
      // TODO Auto-generated method stub
      URL url;
      Drawable drawable = null;
      try {
       url = new URL(source);
       drawable = Drawable.createFromStream(
         url.openStream(), null);
       drawable.setBounds(0, 0,
         drawable.getIntrinsicWidth(),
         drawable.getIntrinsicHeight());
      } catch (MalformedURLException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return drawable;
     }
    };
    CharSequence test = Html.fromHtml(html, imageGetter, null);
    msg.what = 0x101;
    msg.obj = test;
    handler.sendMessage(msg);
   }
  });
  t.start();
 }

@Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

(0)

相关推荐

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

    本文实例讲述了Android TextView显示Html类解析的网页和图片及自定义标签.分享给大家供大家参考,具体如下: Android系统显示HTML网页的最佳控件为WebView,有时候为了满足特定需求,需要在TextView中显示HTML网页.图片及解析自定义标签. 1.TextView显示Html类解析的网页 CharSequence richText = Html.fromHtml("<strong>萝卜白菜的博客</strong>--<a href='

  • 如何在android中使用html作布局文件

    在android开发中,通常使用xml格式来描述布局文件.就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层.大部分企业,其实还是程序员自己动手布局.这样既浪费时间和精力,也未必能达到理想的效果.但是,在企业级的android开发中,使用html页面进行布局,也有很多的优势(例如:简单,大部分开发人员及美工都熟悉,方便统一进行更新,管理).据笔者了解,已经有不少的公司在使用这种方式进行布局开发.这也可能是一种趋势. 下面,我将给出一个实例代码,供大家学习使用html页面给a

  • Android编程获取网址HTML代码的方法

    本文实例讲述了Android编程获取网址HTML代码的方法.分享给大家供大家参考,具体如下: /** * * @param aUrl 网址 * @param aEncode 编码 * @return 返回的HTML代码 * @throws Exception 对外抛出异常 */ public String getHTML(String aUrl, String aEncode) throws Exception { URL url = new URL(aUrl); HttpURLConnecti

  • Android实现TextView显示HTML加图片的方法

    本文实例讲述了Android实现TextView显示HTML加图片的方法.分享给大家供大家参考,具体如下: TextView显示网络图片,我用android2.3的系统,可以显示图片出来,并且如果图片比较大,应用会卡的现象,肯定是因为使用主线程去获取网络图片造成的,但如果我用android4.0以上的系统运行,则不能显示图片,只显示小方框. 究其原因,是在4.0的系统上执行的时候报错了,异常是:Android.os.NetworkOnMainThreadException 经过查文档,原来是4.

  • Android UI使用HTML布局方法实例

    很多时候我们用HTML布局会更方便直接,记录一下. 我现在主要是直接调用服务器的网页(实际上是jsp的,只是返回的是html),所以需要联网,第一步添加权限. 复制代码 代码如下: <uses-permission android:name="android.permission.INTERNET" /> 布局文件直接用一个WebView,如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8

  • Android开发之利用jsoup解析HTML页面的方法

    本文实例讲述了Android利用jsoup解析HTML页面的方法.分享给大家供大家参考,具体如下: 这节主要是讲解jsoup解析HTML页面.由于在android开发过程中,不可避免的涉及到web页面的抓取,解析,展示等等,所以,在这里我主要展示下利用jsoup jar包来抓取cnbeta.com网站的话题分类的实例. 下面是主要的代码,由于使用及其简单,我这里就不再多说了: package com.android.web; import java.io.BufferedInputStream;

  • 通过Html网页调用本地安卓(android)app程序代码

    一.通过html页面打开Android本地的app 1.首先在编写一个简单的html页面 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <a h

  • Android的TextView与Html相结合的具体方法

    Android中的TextView,本身就支持部分的Html格式标签.这其中包括常用的字体大小颜色设置,文本链接等.使用起来也比较方便,只需要使用Html类转换一下即可.比如:textView.setText(Html.fromHtml(str));一.实现TextView里的文字有不同颜色[plain] 复制代码 代码如下: import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3);    t3.se

  • android textview 显示html方法解析

    现在网络的繁盛时代,光文字是不能满足人们的胃口的,图片,flash,音频,视频就成为浏览网页的主流显示,在手机上也一样.在手机上显示从网络端获取的数据显示,大家很自然的想起两种方式,一种就是webview,一种就是TextView.当然webView直接显示html页面就行了,我主要说的TextView显示html内容. 首先,说下TextView到底支持那些标签呢,通过对源码的查看,发现Textview可以解析一部分html标签,如: 复制代码 代码如下: <a href="...&qu

  • Android TextView显示html样式的文字

    先给大家说下项目需求: TextView显示一段文字,格式为:白雪公主(姓名,字数不确定)向您发来了2(消息个数,不确定)条消息 这段文字中名字和数字的长度是不确定的,还要求名字和数字各自有各自的颜色. 就想到了用 Html.fromHtml(String str)来实现. 看方法名很简单,就是可以显示字符串str对应的html格式的文本 比如: Html.fromHtml(<font color='red' size='24'>你好</font>" ) 就将你好以htm

随机推荐