这两天在做一个Android相册的Demo,需要获取手机中所有的图片,并把相同文件夹下的图片归类到同一个相册里面。我使用ImageProvider类来完成这项工作。但这个类获取的图片只包含ID和路径等,真正加载图片需要使用另一个类ImageLoader。本文主要通过ContentResolver这个类得到手机中所有的图片,通过对比图片的相册ID来对图片进行归类。代码如下:
/**
* Created by YangHao on 2015/7/14.
* 异步线程提供相册和照片
*/
public class ImageProvider extends AsyncTask<Object, Object, Integer> {
//相册列表
private List<ImageBucket> mImageBucketList = new ArrayList<>();
//相册列表加载完成后的回调
private OnLoadedBucketListListener onLoadedBucketListListener;
//单例模式
private static ImageProvider mImageProvider = null;
public static ImageProvider getInstance() {
if (mImageProvider == null)
mImageProvider = new ImageProvider();
return mImageProvider;
}
/**
* 获得相册列表。
* 如果在这之前没有调用过 loadImageBucketList()方法来加载列表,则不能获取到正确的相册列表
* 可以通过调用 hasLoadBucketList()方法来检查是否加载过相册列表
* 若要刷新列表,请调用@loadImageBucketList
*
* @return 相册列表
* @see #loadImageBucketList(Context, OnLoadedBucketListListener)
*/