Я начинающий android программист и хочу реализовать список с RecyclerView
, который может содержать любой носитель. Если размер изображения, загружаемого в мое приложение, большой, я хочу уменьшить его. Для этого я нашел код:
Bitmap bitmap = BitmapFactory.decodeFile(path);
Bitmap smallerBitmap = ThumbnailUtils.extractThumbnail(bitmap, bitmap.getWidth() / 8, bitmap.getHeight() / 8));
В первой строке я читаю изображение в моем телефоне, а во второй строке делаю его меньше. Для его написания я использую эту часть кода:
try (FileOutputStream out = new FileOutputStream(finalMyFile)) {
smallerBitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
} catch (IOException e) {
e.printStackTrace();
}
Эти два процесса для больших изображений требуют около 1008 * памяти в оперативной памяти в течение 1-2 секунд. Но моя проблема здесь в том, что иногда после завершения этих процессов память освобождает, а иногда не освобождает. Я делал этот процесс разными способами, но моя проблема не решалась. Я сделал это с Handler
или Thread
. Мое приложение не имеет проблем и продолжает работать, но мне не нравится это для моего приложения.
У вас есть идеи?