項目中需要顯示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 的圖片需要換成你下載完成的圖片。