使用TextView显示网页中的图片

来源:互联网 发布:设计师常用的软件 编辑:程序博客网 时间:2024/06/07 21:04

Html类下有一个ImageGetter接口可以帮助我们完成,直接上代码:

MainActivity:

package com.home.testhtml;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import android.app.Activity;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.text.Html;import android.text.Html.ImageGetter;import android.text.Spanned;import android.widget.TextView;public class MainActivity extends Activity {private TextView tv;private String htmlStr = "<h1>测试html的img标签</h1><p font='red'>这里是测试内容</p><p><img src='http://avatar.profile.csdn.net/A/E/5/2_piaopiaohu123.jpg'></p>";private Handler mHandler = new Handler() {public void handleMessage(Message msg) {Spanned sp = (Spanned) msg.obj;tv.setText(sp);};};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);tv = new TextView(this);setContentView(tv);new Thread() {public void run() {Spanned sp = Html.fromHtml(htmlStr, new MyImageGetter(), null);Message msg = new Message();msg.obj = sp;mHandler.sendMessage(msg);};}.start();}class MyImageGetter implements ImageGetter {@Overridepublic Drawable getDrawable(String source) {Drawable mDrawable = null;try {mDrawable = Drawable.createFromStream(new URL(source).openStream(), "test.jpg");mDrawable.setBounds(0, 0, mDrawable.getIntrinsicWidth(),mDrawable.getIntrinsicHeight());} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return mDrawable;}}}


 

0 0
原创粉丝点击