博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回收ImageView占用的图像内存
阅读量:6255 次
发布时间:2019-06-22

本文共 2186 字,大约阅读时间需要 7 分钟。

 

使用方法: RecycleBitmap.recycleImageView(mSelectorView);   参数为imageview

/**

* 回收ImageView占用的图像内存;
* 使用了本方法之后,记得用一下
* System.gc(); 提醒系统及时回收

* @param view

* 在setImageResource()方法前面还没有bitmap,图片可以出来。
* 在其后面执行本方法的话,图片就不会显示出来。
* 在setImageBitmap()方法的前面还没有bitmap,图片可以出来。
* 在其后面执行本方法的话,图片就不会显示出来。
* 最好在onDestroy方法中执行本方法
*/

public static void recycleImageView(View view){        if(view==null) return;        if(view instanceof ImageView){            Drawable drawable=((ImageView) view).getDrawable();            if(drawable instanceof BitmapDrawable){                Bitmap bmp = ((BitmapDrawable)drawable).getBitmap();                if (bmp != null && !bmp.isRecycled()){                    ((ImageView) view).setImageBitmap(null);                    bmp.recycle();                    log("have recycled ImageView Bitmap");                    bmp=null;                }            }        }    }

 

 

 

使用方法:  RecycleBitmap.recycleBitmap(mNo_shop1Bitmap);  参数为bitmap

/**

* 可以释放到Bitmap在C层申请的内存,recycle方法会把一些相关的引用计数置0.
* 回收Bitmap占用的图像内存;
* 使用了本方法之后,记得用一下
* System.gc(); 提醒系统及时回收
* @param bitmap
* 在setImageBitmap()方法的前面和后面都会报异常,最好在onDestroy方法中执行
* RuntimeException:trying to use a recycled bitmap android.graphics.Bitmap@41c124e8
*/

public static void recycleBitmap(Bitmap bitmap){            if(bitmap!=null&&!bitmap.isRecycled()){               bitmap.recycle() ;  //回收图片所占的内存               log("have recycled Bitmap");               bitmap=null;         }    }

 

 

 

 

/**

* 回收List<Drawable>中的drawable
*/

private void recycleDrawable(List
listDrawable) { if(listDrawable==null){ return; } BitmapDrawable bd; Bitmap bitmap; for(Drawable drawable:listDrawable){ if(drawable!=null){ bd = (BitmapDrawable) drawable; bitmap =bd.getBitmap(); if(bitmap!=null&&!bitmap.isRecycled()){ bitmap.recycle() ; //回收图片所占的内存 log("have recycled Bitmap"); bitmap=null; } } } listDrawable.clear();//它清空了,外面的集合也会清空 listDrawable=null;//它等于null,外面的集合不等于null
}

 

转载于:https://www.cnblogs.com/lipeineng/p/5286480.html

你可能感兴趣的文章
websotrm注册码
查看>>
迭代器(Iterable)和for..in..的三种协议
查看>>
判断浏览器是否为顶层窗口
查看>>
数据结构化与保存
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>
服务器设计笔记(3)-----消息队列
查看>>
poj 1797 Heavy Transportation(最短路径Dijkdtra)
查看>>
基于WinDbg的内存泄漏分析
查看>>
气象预警采集及推送
查看>>
【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
查看>>
python 基础复习 09 之基础函数
查看>>
Extjs 4
查看>>
Java内存模型(JMM)以及 垃圾回收机制 小结
查看>>
开源3D游戏引擎Irrlicht简介
查看>>
如何花更少的时间学习更多的知识
查看>>
学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
查看>>
day04 列表 增删改查 元组 range
查看>>
php 调用百度sms来发送短信的实现示例
查看>>
基于canvas的原生JS时钟效果
查看>>
PL/SQL查看表结构
查看>>