我有一张分辨率为 1920*1080 的 3MB 图片,当我尝试在真实设备(441 PPI 和 5.5 英寸屏幕:Oneplus2 设备)上加载此图片时它工作正常。
但是当我在模拟器设备(1GB Ram | 441 PPI 密度|5.5 英寸屏幕)上运行此代码时,我得到了 OutOfMemoryError
。
我正在通过 XML 将图像加载到我的 RelativeLAyout
的背景中。
我检查了 Devloper.android 以有效加载位图,但我不太清楚。 那么你能帮帮我吗?
最佳答案
它发生在设备到设备上,我遇到了类似的问题。在我的 Sony Xperia C(1GB RAM)上一切正常,但它在 Xiomi Redmi(2GB RAM)中出现 OOM。
然后我做了各种痛苦的研究如何load Bitmap efficiently并最终使用 Glide图书馆,从那以后我再也没有在我的项目中看到任何 OOM。
集成很简单,只需添加 Jar在您的项目中并简单地加载任何大小的位图:-
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
Glide.with(this).load("url to 3 MB image").into(imageView);
你可以在这里阅读所有关于 glide 的信息 https://futurestud.io/blog/glide-getting-started
关于android - Android 模拟器设备中的 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36819587/