2013-07-30 52 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