android - 删除绘图缓存

标签 android bitmap

在我的应用中,当用户点击它时,我想在运行时交换图像

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

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

代码运行良好,但缓存并非每次都被清除,而且位图是用以前的缓存创建的,所以我该如何清除位图缓存?

最佳答案

这是一个示例,例如我用来释放与此位图关联的 native 对象

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 之前释放对象。

关于android - 删除绘图缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793191/

相关文章:

c - BMP 颜色反转功能不起作用

java - 将 Bitmap 转换为 Bitmap[] 数组

java - 旋转 Canvas 和绘制位图性能

android - Android 中的照片库

c# - 如何将 ServiceStack 客户端与 Xamarin.Android 独立许可证一起使用

每次运行/构建后 Android Studio 都需要清理

android - Kotlin 反射的 ProGuard 规则

android - 在android中使用位图的问题

java - Android 模拟手表二手 w/BroadcastReceiver

java - 尝试从 android 中的兄弟打印机打印位图时出现以下异常