Android上出现滑行膨胀图像的问题

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

我正在调试为什么图像占用的内存比我预期的要多得多,并且想知道问题是否出在我滑行所缺少的问题上。

    glide.asBitmap()
            .load(imageUrl)
            .apply(RequestOptions.centerCropTransform())
            .into(object : BitmapImageViewTarget(objectContainer) {
                override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
                    super.onResourceReady(resource, transition)
                    adapter.setPhoto(resource)

                    var numberOfBytes = resource.byteCount;

因此,如果我手动下载图像,那么imageUrl仅为60126字节或60 KB。

当我经过这种滑动负载后打印字节数时,我的图像高达7.6 MB !!!!增长了100倍以上。

我已经注意到任何图像的大小都是相同的,所以我想知道是否存在一些默认的位图缓冲区大小过大,从而导致了此问题。

java android kotlin android-glide android-bitmap
1个回答
0
投票

[将图像文件保存在磁盘上时,通常会对其进行压缩(JPEG,PNG和...),因此它们在磁盘上的尺寸通常很小。

但是当这些图像进入内存时(滑行加载该图像文件时,滑行会做什么),它会变得疯狂并消耗其所需的所有内存,因为它不再被压缩了,它的RAW图像就在您的内存中工作了。

因此,像JPEG这样的无损压缩格式可以使文件大小为500kb,但是在加载该图像时,它可以例如在设备内存上达到10 MB。

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