Удаление кеша рисования

В моем приложении я хочу менять изображения во время выполнения, когда пользователь нажимает на него.

Есть два просмотра изображений, когда пользователь нажимает на первое изображение, а затем нажимает на второе изображение, в то же время я выбираю растровое изображение первого изображения и присваиваю второе изображение для этого. Я использовал следующий код:

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

Код работает нормально, но кэш не очищается каждый раз, а растровое изображение создается с помощью предыдущего кеша, так как я могу очистить кэш растрового изображения?

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 просто освободите объект.

Использование bitmap.recycle(); перед оценкой ваших растровых изображений, чтобы очистить их кэш, прежде чем создавать его заново.

Другие вопросы по тегам