[如果不使用,如何在使用后释放android中的大内存以使用位图

问题描述 投票:0回答:1

我是一名初学者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();
}

[这两个大图像处理需要大约1-2秒的ram中的100 MB内存。但是我的问题是,在这些进程结束后,有时会释放内存,有时不会释放内存。我以多种方式执行了此过程,但是我的问题没有解决。我是用HandlerThread完成的。我的应用程序没有问题,可以继续工作,但是我不喜欢我的应用程序。

你有什么想法吗?

android memory memory-leaks out-of-memory
1个回答
0
投票

您可以在不压缩的情况下同步加载图像,其中有很多最著名的毕加索库,您可以使用本教程link

© www.soinside.com 2019 - 2024. All rights reserved.