2016-04-24 117 views
1

我有1920 * 1080分辨率一個3MB圖像,當我試圖在真實設備(441 PPI & 5.5英寸屏幕:Oneplus2設備)加載這個圖像,它工作正常。 但是,當我在仿真器設備上運行此代碼(1GB Ram | 441 PPI密度| 5.5英寸屏幕)時,我得到OutOfMemoryError。 我通過XML將圖像加載到我的RelativeLAyout的背景。的OutOfMemoryError在Android模擬器設備

我檢查了Devloper.android有效地加載位圖,但對我來說並不是很清楚。 所以你可以幫我一把。

+0

集largeHeap應用標籤和閱讀這:http://developer.android.com/intl/vi/training/displaying-bitmaps/load-bitmap.html –

+0

位圖需要圖像數據以未壓縮的形式,因此至少8MB大。文件系統上的3MB是無關緊要的。 – Henry

+0

如果我將分配大堆,那麼它不會是聰明的想法,因爲應用程序將消耗大量的內存,它會使設備上的性能下降,並隨後崩潰 –

回答

1

它發生在設備到設備上我有類似的問題。在我的索尼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); 

您可以在AndroidManifest在閱讀所有關於滑行這裏https://futurestud.io/blog/glide-getting-started

相關問題