第一种:android
经过Html.fromHtml(String,ImageGetter,tagHandler)json
CharSequence text = Html.fromHtml(capter, new ImageGetter() {
@Override
public Drawable getDrawable(String source) {
Drawable drawable = null;
try {
drawable = Drawable.createFromStream(new URL(source).openStream(),"image");//从远程获取图片
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());//要设置边界信息 Drawable自己是没有边界信息的
} catch (Exception e) {
e.printStackTrace();
}
return drawable;
}}, null);数组
capter_view= (TextView)findViewById(R.id.bookcapter);ide
capter_view.setText(text);//就能够显示出img的图片信息了(这些操做都不要放在UI线程里作,由于图片下载可能比较费时。)spa
第二种:线程
这个须要服务端配合,服务端须要将图片和文字信息在服务端分割开,同时给index来标示位置(为了解决内容分割后不会交叉,客户端能够按index按原来的顺序来排列显示)继承
服务端返回的是以图片img标签分割的json数组(这个操做android端应该也能够作)图片
客户端遍历json数组显示get
若是是img的类型则建立ImageView来显示imgio
若是是text的类型则建立TextView来显示text
这块操做能够封装成 继承LinearLayout 的自定义TestView控件
而后把json数组转成List<HashMap<key,value>> datas;
模拟TextView的setText方法,咱们也能够自定义一个setText(),固然你也能够定义其余名称,这个方法不是重写,因此随便自定义。
在这个方法里遍历数据生成ImageView或TextView
最后经过调用TestView.setText(datas);
生成ImageView后,把ImageView传给新线程,在线程里远程获取图片drawable后,再ImageView.setImageDrawable(drawable)