【问题标题】:Loading drawable from web file format to drawable, not using bitmap Android将可绘制从Web文件格式加载到可绘制,而不是使用位图Android
【发布时间】:2014-08-27 15:43:20
【问题描述】:
我有一个小问题。我正在尝试从网络动态加载图像(Jpeg、PNG 等)并将它们显示在我的 Android 应用程序中。这在 99% 的时间里都有效。但是,有时图像往往太大,以至于位图会溢出可用内存并导致OutOfMemoryExceptions。
我发现,即使 3000 x 3000 像素的 Jpeg 可能只有 200 KB,生成的位图也可能有数百兆字节。有没有办法将 Jpeg/PNG 文件从网络加载到可绘制对象中,而无需先转换为位图?
【问题讨论】:
标签:
android
bitmap
out-of-memory
android-drawable
android-bitmap
【解决方案1】:
在 android 中使用位图有点棘手,我强烈建议您阅读 android 开发者网站上的 THIS 和 THIS 链接,以更好地了解如何有效地将位图加载到内存中。
您还可以使用Universal Image Loader 库,这是一个非常强大且可插入的库。
它负责将位图有效地加载到内存中,并且有很多配置可供您使用。它还会从网络上为您下载图像。
- 您可以为其设置内存或磁盘缓存。还要指定缓存大小。
- 您可以为您提供自定义图像下载器,例如在您需要身份验证的情况下。
- 您可以为缓存文件设置 FileNameGenerator。
- 您可以设置考虑 ExifParams。
- 设置图像比例类型
- UIL 可以根据其 ImageView 容器大小从文件中加载位图。所以你有更好的内存管理。它将加载基于 ImageView 大小的缩小版图像,而不是加载大尺寸的图像。
失去了其他选择