android 怎么判断bitmap对象有没有被使用
2个回答
展开全部
android 判断bitmap对象有没有被使用,可以通过bitmap的属性isRecycled()方法判断,如果已经被回收,说明没有被使用,如下代码:
// 先判断是否已经回收
if(bitmap != null && !bitmap.isRecycled()){
// 回收并且置为null
bitmap.recycle();
bitmap = null;
}
Bitmap类的构造方法都是私有的,所以开发者不能直接new出一个Bitmap对象,只能通过BitmapFactory类的各种静态方法来实例化一个Bitmap。仔细查看BitmapFactory的源代码可以看到,生成Bitmap对象最终都是通过JNI调用方式实现的。所以,加载Bitmap到内存里以后,是包含两部分内存区域的。简单的说,一部分是Java部分的,一部分是C部分的。这个Bitmap对象是由Java部分分配的,不用的时候系统就会自动回收了,但是那个对应的C可用的内存区域,虚拟机是不能直接回收的,这个只能调用底层的功能释放。所以需要调用recycle()方法来释放C部分的内存。
2015-04-16 · 知道合伙人影视综艺行家
关注
展开全部
public boolean setAsWallpaper(Bitmap bitmap,Context cont) {
//设置壁纸一行代码搞定;
try {
cont.setWallpaper(bitmap);
} catch (IOException e1) {
// TODO Auto-generated catch block
return false;
e1.printStackTrace();
}
return true;
}
//设置壁纸一行代码搞定;
try {
cont.setWallpaper(bitmap);
} catch (IOException e1) {
// TODO Auto-generated catch block
return false;
e1.printStackTrace();
}
return true;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询