在Android应用中处理图片的加载并不是那么容易,有几个原因:
- 位图可以非常轻松地消耗应用程序的内存预算。 例如,Pixel手机上的相机最多可拍摄4048x3036像素(1200万像素)的照片。 如果使用的位图配置是ARGB_8888,Android 2.3(API级别9)及更高版本的默认设置,则将单张照片加载到内存中需要大约48MB的内存(4048 * 3036 * 4个字节)。 如此大的内存需求可能会立即耗尽应用程序的所有可用内存
- 在UI线程中加载位图可能会降低应用程序的性能,导致响应速度缓慢甚至ANR消息。 因此,使用位图处理适当的线程是非常重要的。
- 如果您的应用程序正在将多个位图加载到内存中,则需要熟练地管理内存和磁盘缓存。 否则,你的应用的UI的响应性和流畅性可能会受到影响。
对于大多数情况下,我们建议您使用Glide库来获取,解码和显示应用程序中的位图。 Glide将处理与Android上的位图和其他图像相关的这些和其他任务的大部分复杂性抽象化。 有关使用和下载Glide的信息,请访问GitHub上的Glide存储库。
您也可以选择直接使用内置在Android框架中的低级API。 有关详细信息,请参阅高效加载大型位图,缓存位图和管理位图存储器。