Удаление кеша рисования
В моем приложении я хочу менять изображения во время выполнения, когда пользователь нажимает на него.
Есть два просмотра изображений, когда пользователь нажимает на первое изображение, а затем нажимает на второе изображение, в то же время я выбираю растровое изображение первого изображения и присваиваю второе изображение для этого. Я использовал следующий код:
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();
перед оценкой ваших растровых изображений, чтобы очистить их кэш, прежде чем создавать его заново.