3

在我的应用程序中,当用户单击它时,我想在运行时交换图像。

当用户单击第一个图像然后单击第二个图像时有两个图像视图我正在获取第一个图像视图图像的位图并为此分配给第二个图像视图我使用了以下代码:

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;
    }
}

代码工作正常,但每次都没有清除缓存,并且使用以前的缓存创建的位图,所以我如何清除位图缓存?

4

2 回答 2

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
}

在使用位图之前,只需释放对象。

于 2012-05-29T05:18:55.437 回答
1

在评估您的位图之前使用bitmap.recycle();以在重新创建之前清除其缓存。

于 2012-05-29T04:56:13.783 回答