使用 TextView 缓存显示html页面中图片
来源:互联网 发布:办理网络400电话 编辑:程序博客网 时间:2024/06/10 01:34
使用SDK中已有的ImageGetter来显示html中的图片
//mTv是你显示html所使用的TextView mTv.setText(Html.fromHtml("要显示的html", imageGetter, null));/** * html显示 */ private Html.ImageGetter imageGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(String s) { //字符串s是html中的图片链接 LogUtils.i("test", s); InputStream is = null; try { URL url = new URL(s); is = url.openStream(); Drawable d = Drawable.createFromStream(is, "image.jpg"); //限制图片显示位置和大小 d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); is.close(); return d; } catch (Exception e) { try { if(is != null){ //记得在异常处理中加关闭is的代码 is.close(); } } catch (IOException e1) { e1.printStackTrace(); } return null; } } };
不过这段代码涉及了从网络获取图片,如果要显示的图片一多就会特别卡,要是在主线程中使用还会把app给kill了。我最开始是在网上找的一个用异步加载html中图片的方法,不过那方法在显示图片的时候必须设置图片大小,不然会出现图片重叠。不过我最后找到了一个使用ImageLoader加载图片的方法,解决了这个问题。
使用ImageLoader加载html中的图片
使用这种方法必须重写ImageGetter和重新自己定义一个BitmapDrawable 类
//使用方式:mTv.setText(Html.fromHtml(farmLand.getContent(), new URLImageGetter(mTv), null));
URLDrawable.java:
public class URLDrawable extends BitmapDrawable { protected Bitmap bitmap; @Override public void draw(Canvas canvas) { if (bitmap != null) { canvas.drawBitmap(bitmap, 0, 0, getPaint()); } }}
URLImageGetter.java:
public class URLImageGetter implements Html.ImageGetter { TextView textView; public URLImageGetter(TextView textView) { this.textView = textView; } @Override public Drawable getDrawable(String paramString) { final URLDrawable urlDrawable = new URLDrawable(); ImageLoader.getInstance().loadImage(paramString, new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { urlDrawable.bitmap = loadedImage; urlDrawable.setBounds(0, 0, loadedImage.getWidth(), loadedImage.getHeight()); //textView.invalidate(); //为了防止图片重叠必须重新设置textView textView.setText(textView.getText()); } }); return urlDrawable; }}
1 0
- 使用 TextView 缓存显示html页面中图片
- android 使用html标签在textview中显示图片
- TextView中显示HTML和图片
- Android TextView中显示HTML和图片
- textview显示HTML中img的图片
- TextView使用html.fromhtml加载html并显示图片
- TextView通过Html显示图片
- 在TextView中显示Html格式的文字/图片/超链接
- android的TextView使用Html(图片显示)格式。。。。。。
- android的TextView使用Html(图片显示)格式。。。。。。
- Android TextView使用HTML处理字体样式、显示图片等
- android的TextView使用Html(图片显示)格式
- Android TextView使用HTML处理字体样式、显示图片等
- Android TextView使用HTML处理字体样式、显示图片等
- Android TextView使用HTML处理字体样式、显示图片等
- Android TextView使用HTML处理字体样式、显示图片等
- Android TextView使用HTML处理字体样式、显示图片等
- android的TextView使用Html(图片显示)格式。。。。。。
- word文档与pdf文档的转换问题
- TCP协议详解(五)
- HDU 2703 The Bridges of San Mochti
- HDU 5344
- ImageView出现警告[Accessibility]Missing contentDescription attribute on imag
- 使用 TextView 缓存显示html页面中图片
- x86 处理器开机顺序
- jQuery Validation Plugin提示修改为气泡使用bootstrap
- %windir% %userprofile% 的变量的说明
- Codeforces Round #Pi (Div. 2)567B Berland National Library(模拟)
- MSCA 70-461 : Sql Server Skills measured
- Spring 常用注解
- 南邮 OJ 1683 股价排序问题
- c#匿名方法