我是一名初学者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
内存。但是我的问题是,在这些进程结束后,有时会释放内存,有时不会释放内存。我以多种方式执行了此过程,但是我的问题没有解决。我是用Handler
或Thread
完成的。我的应用程序没有问题,可以继续工作,但是我不喜欢我的应用程序。
你有什么想法吗?
您可以在不压缩的情况下同步加载图像,其中有很多最著名的毕加索库,您可以使用本教程link