获取手机相册图片,展示到gridview中,
用到了 Thumbnails ,这是获取sdcard中所有图片的缩略图,通过下面的代码,可以里用缩略图与实际图的关系,
将sdcard中的所有图片加载出来:String[] projection = {Thumbnails._ID,Thumbnails.IMAGE_ID,Thumbnails.DATA};
Cursor cursor = cr.query(Thumbnails.EXTERNAL_CONTENT_URI, projection, null, null, null);现在我遇到了两个问题,
1: 通过上面方式,理应是加载出sdcard中的所有图片的,可是我加载出来的,在gridview中后半部分展示的那些图片,
    出现了重复,有一批图片,在gridview中重复展示了好多次,我不知道是什么原因导致重复显示图片;
    下面代码是 将缩略图添加在list中,供gridview展示。
    而且,通过log中输出的内层循环中,image_path ,输出的都不不同的图片,可是为什么会出现重复的图片呢?if(cur.moveToFirst()){
int _id;  //缩略图的 id
int image_id; //实际图的id
String image_path;

int _idColumn = cur.getColumnIndex(Thumbnails._ID);
int image_idColumn = cur.getColumnIndex(Thumbnails.IMAGE_ID);
int dataColumn = cur.getColumnIndex(Thumbnails.DATA);
Log.i(TAG, "循环外面> _idColumn:"+_idColumn+",image_idColumn:"+image_idColumn+",dataColumn:"+dataColumn);

do{

_id = cur.getInt(_idColumn);
image_id = cur.getInt(image_idColumn);
image_path = cur.getString(dataColumn);

Log.i(TAG,"循环内层> _id:"+_id+",image_id:"+image_id+",image_path:"+image_path);

HashMap map = new HashMap();

if(_id == image_id){ // 过滤掉真实图片已经不存在的 缩略图
if(!imgMap.containsKey(_id+"")){
imgMap.put(_id+"", "img");
map.put("image_id", image_id+"");
map.put("image_path", image_path+"");
list.add(map);
}
}
int totalC = cur.getCount();
}while(cur.moveToNext());
2:加载具体某个文件夹下面的图片,还是用上面的方式,只是在ContentResolver cr的query方法中中的第三个参数selections,指定某个条件String selections = MediaStore.Images.Media.DATA+"="+"'/sdcard/Camera'";
String[] projection = {Thumbnails._ID,Thumbnails.IMAGE_ID,Thumbnails.DATA};
Cursor cursor = cr.query(Thumbnails.EXTERNAL_CONTENT_URI, projection, selections, null, null);为什么加了这个条件了,一张图片都不出现呢?我只是个新手,上面循环中的代码,也是参考别人的,希望各位 android 大能,能指点指点,谢谢!