在项目中有时候会遇到富文本的图文混排
先放demo地址
HtmlResolve
效果图:

其中module,html_resolve为html解析,如果返回的html中img路径不全需要配置Constans中的IMAGE_URL为图片地址前缀
在activity中设置:
oncreate方法中对富文本方法进行初始化:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
htmlSpanner = new HtmlSpanner(this, dm.widthPixels, handler);
通过调用setInfo方法对html进行解析并将解析到的图文信息显示到textview上
private void setInfo() {
new Thread(new Runnable() {
@Override
public void run() {
final Spannable spannable = htmlSpanner.fromHtml(html);
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(spannable);
textView.setMovementMethod(LinkMovementMethodExt.getInstance(handler, ImageSpan.class));
}
});
}
}).start();
}
在handler中获取富文本中的图片地址,如果富文本中为多图,会多次进入该方法,可定义一个list来接收图片地址,实现预览图的功能。
@SuppressLint("HandlerLeak")
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1://获取图片路径列表
String url = (String) msg.obj;
Log.e("jj", "url>>" + url);
break;
}
}
};
网友评论