gpt4 book ai didi

Android加载大位图

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:36 25 4
gpt4 key购买 nike

我正在制作一个 Android 应用程序,我需要在 cavas 中加载图像(位图)并使用“缩放”手势调整它的大小。但是,当图像超过一定大小时,应用程序会崩溃(OutOfMemory 异常)。如何优化图像的加载和操作?

要加载我使用的图像:

BitmapFactory.decodeResource (ctx.getResources (), R.drawable.image)

绘制它:

imgCanvas.drawBitmap (image, posX, posY, null), 

改变它的大小:

Bitmap.createScaledBitmap (originalBitmap, neww, NEWH, true);

最佳答案

这不是微不足道的。

根据图像的当前比例和图像当前可见的部分,只加载该图像的一部分以适当的分辨率:
https://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html

当缩小并且您想按比例显示整个图像时,使用此 BitmapRegionDecoder 类中的方法,该类采用 BitmapFactory.Options 参数并将其设置 inSampleSize 为大于 1 的值(最好是 2 的幂的值):
https://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize

放大时,首先放大已显示的较低分辨率(您使用了 inSampleSize > 1 的值),然后延迟加载较高分辨率版本(其中 inSampleSize 小于之前的分辨率)您使用的值)使用 BitmapRegionDecoder 并逐渐淡入高分辨率版本。

当用户放大时,继续这样做,直到您的 inSampleSize 为 1。

关于Android加载大位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15323545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com