Android加载html内容显示图片

来源:互联网 发布:计算机算法基础 编辑:程序博客网 时间:2024/06/10 06:07

首先,从服务器上返回的数据是String类型的html代码


这是一个String类型的html代码段:



为String res;

我写了一个方法getimgae(res);

public void getimage(String res){


Document doc = Jsoup.parse(res);
Elements img = doc.select("img");
//System.out.println("---"+img.attr("src"));
//res.replace("/ajj_oa_test", Contants.IP3+"/ajj_oa_test");
img.attr("src",Contants.IP3+img.attr("src"));
final String html=doc.html();
System.out.println(doc.html());
Thread t = new Thread(new Runnable() {
Message msg = Message.obtain();
@Override
public void run() {
// TODO Auto-generated method stub
/**
* 要实现图片的显示需要使用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.obj = test;
handler.sendMessage(msg);
}
});
t.start();


}

这里运用到了jsoup.rar,下载一个插件即可 jsoup.rar地址:http://download.csdn.net/detail/u014000832/7994245

上面开了一个线程去实现图片的转化,运用handler去更新UI

@SuppressLint("HandlerLeak")
private Handler handler=new Handler(){


@Override
public void handleMessage(Message msg) {
// TODO 自动生成的方法存根
if (msg.obj !=null) {
zhengwen.setText((CharSequence) msg.obj);
}
super.handleMessage(msg);
}
};

这里zhengwen是一个TextView控件,可以用Android里面的WebView去实现更多的Html加载。

以上都是在同一个Activity内的。




1 0
原创粉丝点击