在我的应用中,当用户点击它时,我想在运行时交换图像。
当用户点击第一张图片然后点击第二张图片时,有两个图像视图我同时获取第一张图片查看图像的位图并为此分配第二张图片我使用了以下代码:
public Bitmap createBitmap(ImageView imageview) {
imageview.setDrawingCacheEnabled(true);
imageview.buildDrawingCache(false);
if(imageview.getDrawingCache() != null) {
Bitmap bitmap = Bitmap.createBitmap(imageview.getDrawingCache());
imageview.setDrawingCacheEnabled(false);
return bitmap;
} else {
return null;
}
}
代码工作正常但是每次都没有清除缓存并且使用以前的缓存创建了位图,所以我如何清除位图缓存?
答案 0 :(得分:2)
这是一个例子,例如我在Free the native object associated with this bitmap
使用的地方。
Bitmap bitmap;
public Bitmap createBitmap(ImageView imageview) {
if (bitmap != null) {
bitmap.recycle();
bitmap = null;
}
bitmap = Bitmap.createBitmap(imageview.getDrawingCache());
// Your Code of bitmap Follows here
}
在使用Bitmap之前,只需释放对象。
答案 1 :(得分:1)
在评估位图之前使用bitmap.recycle();
以在重新创建之前清除其缓存。