获取远程文章内容时,显示图片的两种方式
2014-10-06 11:34
351 查看
第一种:
通过Html.fromHtml(String,ImageGetter,tagHandler)
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);
capter_view.setText(text);//就可以显示出img的图片信息了(这些操作都不要放在UI线程里做,因为图片下载可能比较费时。)
第二种:
这个需要服务端配合,服务端需要将图片和文字信息在服务端分割开,同时给index来标示位置(为了解决内容分割后不会交叉,客户端可以按index按原来的顺序来排列显示)
服务端返回的是以图片img标签分割的json数组(这个操作android端应该也可以做)
客户端遍历json数组显示
如果是img的类型则创建ImageView来显示img
如果是text的类型则创建TextView来显示text
这块操作可以封装成 继承LinearLayout 的自定义TestView控件
然后把[b][b]json数组[/b]转成List<HashMap<key,value>> datas;[/b]
模拟TextView的setText方法,我们也可以自定义一个setText(),当然你也可以定义其他名称,这个方法不是重写,所以随便自定义。
在这个方法里遍历数据生成ImageView或TextView
最后通过调用[b]TestView.setText(datas);[/b]
生成ImageView后,把ImageView传给新线程,在线程里远程获取图片drawable后,再ImageView.setImageDrawable(drawable)
通过Html.fromHtml(String,ImageGetter,tagHandler)
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);
capter_view.setText(text);//就可以显示出img的图片信息了(这些操作都不要放在UI线程里做,因为图片下载可能比较费时。)
第二种:
这个需要服务端配合,服务端需要将图片和文字信息在服务端分割开,同时给index来标示位置(为了解决内容分割后不会交叉,客户端可以按index按原来的顺序来排列显示)
服务端返回的是以图片img标签分割的json数组(这个操作android端应该也可以做)
客户端遍历json数组显示
如果是img的类型则创建ImageView来显示img
如果是text的类型则创建TextView来显示text
这块操作可以封装成 继承LinearLayout 的自定义TestView控件
然后把[b][b]json数组[/b]转成List<HashMap<key,value>> datas;[/b]
模拟TextView的setText方法,我们也可以自定义一个setText(),当然你也可以定义其他名称,这个方法不是重写,所以随便自定义。
在这个方法里遍历数据生成ImageView或TextView
最后通过调用[b]TestView.setText(datas);[/b]
生成ImageView后,把ImageView传给新线程,在线程里远程获取图片drawable后,再ImageView.setImageDrawable(drawable)
相关文章推荐
- php获取远程图片的两种 CURL方式和sockets方式获取远程图片
- php获取远程图片的两种:CURL方式和sockets方式获取远程图片
- Windows Phone7 Image控件显示网络图片的两种方式
- Windows Phone 7 Image控件显示网络图片的两种方式
- kindeditor及其他现在编辑器获取文章内容中的图片标签及其src实现
- 如何给wordpress首页自动显示文章内容的第一个图片
- dedecms织梦文章内容图片显示绝对路径修改
- 从FCKeditor生成HTML字段里获取文章内容和图片
- Finereport用IMG来显示图片的两种方式
- 页面上显示图片 以流的方式获取
- 从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式
- ListView的常见优化:获取网络图片异步加载,分批加载,分页显示,图片缓存等优化方式
- 【Android Training - 09】高效地显示Bitmap图片 [ Lesson 3 - 两种缓存Bitmap的方式 ]
- 获取网页内容之后图片不显示
- 两种方法获取远程网页的内容
- 高效地显示Bitmap图片 3 - 两种缓存Bitmap的方式
- Jquery+ashx当把鼠标放到每篇文章时,自动显示该文章的缩略内容( 图片)的异步加载方法
- ueditor编辑文章时候,复制粘贴内容,原来的图片不能显示
- 两种内容加载显示方式