项目中需要显示html的字符串,ios是用的webview,不过感觉webview太麻烦 就是用了textview
str是一个包含图片的html格式的文件,要在textview种显示文字和图片,代码如下:
int index = str.indexOf("src=\"");
//如果有图片
if(index>-1){
String regex="src=\"([^\"]*)\"";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(str);
if(m.find()){
//正则匹配出图片
System.out.println(m.group(1))
img = m.group(1);
}
//异步吓着图片的方法,这里是先把文字显示出来,等后台下载好图片后,再次设置textview
downloadImg();
}
Html.ImageGetter imageGetter = new ImageGetter() {
Drawable drawable=null;
@Override
public Drawable getDrawable(String source) {
//加载中提示图片
drawable = getResources().getDrawable(R.drawable.pictures);
try {
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return drawable;
}
};
//s为html布局
content.setText(Html.fromHtml(s,imageGetter,null));
如果要异步加载图片,可以使用downloadImg();下载图片,下载完成,再次
content.setText(Html.fromHtml(s,imageGetter,null));
不过imageGetter 的图片需要换成你下载完成的图片。