2013-07-30 53 views
0

我需要爲我的佈局與BitmapFactory.decodeResource圖像由於內存限制和圖像的大文件大小動態地進行解碼。我想定義我的佈局圖形使用XML佈局編輯器,但調用的setContentView()時或在活動充氣與LayoutInflater的佈局,在機器人中引用的圖像:SRC圖像元素的屬性將被加載並引起一個OutOfMemoryException。解決此問題的一種方法是不要在XML圖像元素中定義android:src屬性,並在解碼後將動態解碼圖像與ImageView.setImageBitmap以編程方式附加到充氣佈局。但是,不定義android:src意味着我失去了以圖形方式定義我的佈局的能力。另一種方法是在圖形化設計佈局時使用小佔位符圖像,並在運行時用解碼圖像替換它們。這很痛苦,因爲我需要爲此保留所有圖像文件的單獨副本。Android的佈局和大圖像

任何人都可以提出一個方法來遵循,讓我來動態解碼/圖像文件progammatically附加到佈局元素又不失圖形化地設計我的佈局的能力嗎?我真的不想用代碼手動構建整個佈局,也不想維護圖像的單獨「設計副本」。

+0

你能告訴你的代碼的壓縮版本? – Raptor

回答

0

請參閱: http://developer.android.com/training/displaying-bitmaps/index.html

他們得到噸的技巧和你可以使用示例代碼的。除此之外,您還可以使用位圖的.compress()方法有位

+0

我已經經歷了這些建議,包括以較小的採樣率解碼位圖,實現LruCache,並在完成它們時回收位圖。我的基本問題是我必須動態加載調整大小的位圖,但這樣做會限制我使用XML佈局,除非使用佔位符圖像。我想通過調整大小的圖像來擴大版面。但是在膨脹視圖之前似乎沒有辦法設置圖像元素的源值。 – sebeticus