Android开发中,几乎任何一个项目都少不了特定的一些功能,比如网络加载,图片选择,拍照等。这些功能可是说是目前常用APP的通用功能部分,今天我学习的就是Android开发中的本地图片加载,做一个流畅的图片选择器。学习的内容其实就是仿照微信的图片选择器:
学习中,实证目的及实现思路方法是:
1实现目标:
A,尽可能避免内存溢出,防止OOM的出现,
B,根据图片的指定显示大小来处理图片(图片压缩)以及使用图片缓存策略对图片进行管理,
C,我们在进行图片选择时要尽可能流畅,保证用户的体验性佳,
D,如果图片数据较多,我们尽可能实现 图片快速 加载。
实现的思路:
A,通过ImagLoader类来统一对图片操作进行处理,包括图片加载,图片缓存,图片压缩及图片展示在ImageView中等
B,具体而言,我们是用GirdView来展示加载后的图片数据,我们在Adapter的getView()方法中会加载图片数据,并进行图片展示 ,
C,具体方法:我们是通过图片的url来获取图片,首先我们会根据url去缓存(LruCache)中去查找Bitmap,如果有的话就显示出来,如果没有我们就是通过异步任务去图库查找图片,查找成功则加载图片同时缓存起来,方便下次加载,
D,图片较多时,为了防止图片加载错位问题,我们给ImageView设置setTag(),根据getTag()来判断图片位置是否正确,然后正确加载图片。
接下来的就贴上主要代码!