android - 加载非常大的位图

标签 android bitmap out-of-memory

我正在截取 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 ,处理一次加载部分图像,无论缩放比例是当前缩放级别所必需的,以便您更有可能向用户显示整个图像。

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

相关文章:

java - Java中的内存泄漏

java.lang.AssertionError : Docker environment has more than 2GB free

java - 我的 Android 应用程序意外关闭

android - 使用缩放和拖动绘制路径

java - VideoBitmapDecoder 不接受 int (Android-Glide)

c - 从比特流中提取特定位,给定一个指向比特流开头的空指针

java - Android:启动抽屉布局时出现内存不足错误

android - 在自定义对话框中设置微调器

android - Windows 上的 Ubuntu 上的 Bash,编译 AOSP

android - 有没有办法在 AsyncTask 的抽象类保护方法中对代码进行单元测试?