当我尝试在真实设备(441 PPI和5.5英寸屏幕:Oneplus2设备)上加载此图像时,我有 3MB 图像,分辨率 1920 * 1080 )它工作正常。
但是当我在仿真器设备(1GB Ram | 441 PPI密度| 5.5英寸屏幕)上运行此代码时,我得到了OutOfMemoryError
。
我正在通过XML将图像加载到RelativeLAyout
的背景中。
我检查了Devloper.android是否有效加载了位图,但对我来说并不是很清楚。 那么请你帮帮我。
答案 0 :(得分:1)
它发生在设备到设备上我有类似的问题。在我的索尼Xperia C(1GB内存)上一切正常,但它在Xiomi Redmi(2GB内存)中提供了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);
你可以在这里阅读所有关于滑行的信息https://futurestud.io/blog/glide-getting-started