0

由于内存限制和图像的大文件大小,我需要使用 BitmapFactory.decodeResource 为我的布局动态解码图像。我想使用 XML 布局编辑器以图形方式定义我的布局,但是当在 Activity 中调用 setContentView() 或使用 LayoutInflater 填充布局时,图像元素的 android:src 属性中引用的图像将被加载并导致 OutOfMemoryException。解决此问题的一种方法是不在 XML 图像元素中定义 android:src 属性,并在解码后使用 ImageView.setImageBitmap 以编程方式将动态解码的图像附加到膨胀布局。但是,不定义 android:src 意味着我失去了以图形方式定义布局的能力。另一种方法是在图形化设计布局时使用小占位符图像,并在运行时用解码图像替换它们。这很痛苦,因为我需要为此目的保留所有图像文件的单独副本。

谁能建议一种方法可以让我动态解码/附加图像文件到布局元素,而不会失去以图形方式设计我的布局的能力?我真的不想用代码手动构建整个布局或维护图像的单独“设计副本”。

4

1 回答 1

0

请参阅:http: //developer.android.com/training/displaying-bitmaps/index.html

他们有大量的提示和示例代码可供您使用。除此之外,您还可以使用 Bitmap 的 .compress() 方法来获得位图的压缩版本

于 2013-07-30T03:24:29.617 回答