加载非常大的位图
Load Very Large Bitmap
我正在拍摄 WebView
的整个屏幕截图并在 ImageView
上显示位图。位图可以是 7 屏幕高度。 (例如 1440x14000 像素)
我经常面对
OutOfMemoryError.
我看过this
这表示将按比例缩小的版本加载到内存中,但我不想失去图像质量。网上也有同样的方法。
有没有办法在不加载缩小版的情况下处理OutOfMemoryError?
The bitmap can be 7 screen height. (E.g. 1440x14000 px)
请注意,这意味着用户无法以全分辨率一次看到整个图像。
I'm frequently face with OutOfMemoryError
在大多数设备上,您将很难加载这么大的图像,因为您无法获得这么大的单个连续内存块。
This says that load a scaled down version into memory but I don't want to lose image quality
在某种程度上,你没有太多选择。如果您希望用户立即看到图片的完整范围,则必须缩放图片以适合屏幕。
Is there any way to handle OutOfMemoryError without loading scaled down version?
有 ImageView
个提供平移和缩放功能的替代品。其中一些,例如 this one,处理一次加载图像的片段,无论缩放比例是当前缩放级别所必需的,以使您更有可能向用户展示整个图像图片。
当然,这不是解决方案,但我也不熟悉您的确切需求,所以这可能会对您有所帮助 - 您可以尝试在解码过程中使用位图选项。尝试将 Bitmap.Config.inPreferredConfig 用作 RGB_565 - 与默认 ARGB_8888 相比,这会将位图的大小减小两倍。但是,当然,如果您在网页中使用复杂的图像,这可能会降低它们的质量。
我正在拍摄 WebView
的整个屏幕截图并在 ImageView
上显示位图。位图可以是 7 屏幕高度。 (例如 1440x14000 像素)
我经常面对
OutOfMemoryError.
我看过this
这表示将按比例缩小的版本加载到内存中,但我不想失去图像质量。网上也有同样的方法。
有没有办法在不加载缩小版的情况下处理OutOfMemoryError?
The bitmap can be 7 screen height. (E.g. 1440x14000 px)
请注意,这意味着用户无法以全分辨率一次看到整个图像。
I'm frequently face with OutOfMemoryError
在大多数设备上,您将很难加载这么大的图像,因为您无法获得这么大的单个连续内存块。
This says that load a scaled down version into memory but I don't want to lose image quality
在某种程度上,你没有太多选择。如果您希望用户立即看到图片的完整范围,则必须缩放图片以适合屏幕。
Is there any way to handle OutOfMemoryError without loading scaled down version?
有 ImageView
个提供平移和缩放功能的替代品。其中一些,例如 this one,处理一次加载图像的片段,无论缩放比例是当前缩放级别所必需的,以使您更有可能向用户展示整个图像图片。
当然,这不是解决方案,但我也不熟悉您的确切需求,所以这可能会对您有所帮助 - 您可以尝试在解码过程中使用位图选项。尝试将 Bitmap.Config.inPreferredConfig 用作 RGB_565 - 与默认 ARGB_8888 相比,这会将位图的大小减小两倍。但是,当然,如果您在网页中使用复杂的图像,这可能会降低它们的质量。