三九宝宝网宝宝绘画儿童画

android bitmap从网络获取图片并处理问题溢出

02月11日 编辑 39baobao.com

[WordPress如何获取文章里面全部图片或者前几张图片]参考: function wpdit_get_post_images($post_content){ preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', do_shortcode($post_content), $matches); if($matches){ retu...+阅读

在 Java中,JavaVM拥有自动管理内存的功能,Java的GC能够进行垃圾回收,但是如果ImageView使用过多的Bitmap的话,经常会报OOM(内存溢出)。

造成内存溢出及解决方案:

1. 使用BitmapFactory.decodeStream替代createBitmap方法

原因是该方法直读取图片字节,调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap。

2. 使用压缩读取技术

BitmapFactory.Options options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;

BitmapFactory.decodeFile(imageSdUri, options);

final int height = options.outHeight;

final int width = options.outWidth;

options.inSampleSize = 1;

int w = 320;

int h = 480;

h = w*height/width;//计算出宽高等比率

int a = options.outWidth/ w;

int b = options.outHeight / h;

options.inSampleSize = Math.max(a, b);

options.inJustDecodeBounds = false;

Bitmap bitmap = BitmapFactory.decodeFile(imageSdUri, options);

3.及时释放Bitamp

Bitmap对象在不使用时,我们应该先调用recycle()释放内存,然后才它设置为null.虽然recycle()从源码上看,调用它应该能立即释放Bitmap的主要内存,但是测试结果显示它并没能立即释放内存。但是我它应该还是能大大的加速Bitmap的主要内存的释放。

以下为关联文档:

WordPress获取文章缩略图的图片地址the_post_thumbnail('thumbnail'); // 缩略图(最大默认 宽150px高150px) the_post_thumbnail('medium'); // 中等大小(最大默认 宽300px 高300px) the_post_thumbnail('large'); //...

问道手游中秋博饼骰子怎么得骰子获取途径详解博饼的奖励如此吸引人,那么博饼所需的骰子要如何获得呢?原来,嫦娥姐姐下凡天墉城邀请道友们助她一臂之力,成功完成任务的道友们即可获得骰子奖励哦。 月饼寻踪: 嫦娥委托道友收集...

如何获取单机游戏场景图片有很多截图用的软件,比如红蜻蜓有的单机游戏就自带截图功能,比如仙4 上QQ号然后同时按Ctrl+Alt+A 也可以最常用的就是用键盘上的Print Screen键可以抓取系统中的桌面图案,然后...

js获取上传图片的尺寸你是怎么取得Image对象的宽度和高度的?用的image.style.width和image.style.height??这两个只能获得显示在元素style属性中设置的css样式。用image对象是没错的,var image = new...

如何获取 ckeditor上传图片路径<asp:TextBox ID="txt_PicUrl_Insert" runat="server" MaxLength="100" Width="280px" CssClass="txt_box_big"></asp:TextBox> <input id="btn_OpenFileBrowser_Insert" onclick="openFi...

怎样获取KingEditor中上传的图片路径使用KindEditor上传图片,图片上传的路径是由用户自行指定的,KindEditor展示上传的图片时,需要一个路径作为图片img的src,这个路径由处理图片的JSP指定,当拼接好url之后,使用PageCo...

android开发溢出内存溢出的解决办法如下:1. 当项目中包含大量图片,或者图片过大方法1:等比例缩小图片代码:BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSiz...

推荐阅读
图文推荐