图片的本地获取

/*
 * 按相册获取图片信息
 */
public static List<TPhotoAlbum> getPhotoAlbum(Context context) {
    List<TPhotoAlbum> aibumList = new ArrayList<>();
    Cursor cursor = MediaStore.Images.Media.query(
            context.getContentResolver(),
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI, STORE_IMAGES);
    Map<String, TPhotoAlbum> countMap = new HashMap<>();
    TPhotoAlbum pa = null;

    while (cursor.moveToNext()) {
        String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
        String id = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media._ID));
        String dateMills = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN));
        String dir_id = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_ID));
        String dir = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
        String longitude = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.LONGITUDE));
        String latitude = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.LATITUDE));
        if (!countMap.containsKey(dir_id)) {
            pa = new TPhotoAlbum();
            pa.setName(dir);
            pa.setBitmap(Integer.parseInt(id));
            pa.setCount("1");
            pa.getBitList().add(new TPhotoItem(Integer.valueOf(id), path, longitude, latitude, dateMills));
            countMap.put(dir_id, pa);
        } else {
            pa = countMap.get(dir_id);
            pa.setCount(String.valueOf(Integer.parseInt(pa.getCount()) + 1));
            pa.getBitList().add(new TPhotoItem(Integer.valueOf(id), path, longitude, latitude, dateMills));
        }
    }
    cursor.close();
    Iterable<String> it = countMap.keySet();
    for (String key : it) {
        aibumList.add(countMap.get(key));
    }
    return aibumList;
}
/**
 * 得到本地缩略图,图片文件
 * @param context
 * @return
 */
public static ArrayList<HashMap<String,String>> getAllPictures(Context context) {
    ArrayList<HashMap<String,String>> picturemaps = new ArrayList<>();
    HashMap<String,String> picturemap;
    ContentResolver cr = context.getContentResolver();
    //先得到缩略图的URL和对应的图片id
    Cursor cursor = cr.query(
            MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
            new String[]{
                    MediaStore.Images.Thumbnails.IMAGE_ID,
                    MediaStore.Images.Thumbnails.DATA
            },
            null,
            null,
            null);
    if (cursor.moveToFirst()) {
        do {
            picturemap = new HashMap<>();
            picturemap.put("image_id_path",cursor.getInt(0)+"");
            picturemap.put("thumbnail_path",cursor.getString(1));
            picturemaps.add(picturemap);
        } while (cursor.moveToNext());
        cursor.close();
    }
    //再得到正常图片的path
    for (int i = 0;i<picturemaps.size();i++) {
        picturemap = picturemaps.get(i);
        String media_id = picturemap.get("image_id_path");
        cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[]{
                        MediaStore.Images.Media.DATA
                },
                MediaStore.Audio.Media._ID+"="+media_id,
                null,
                null
        );
        if (cursor.moveToFirst()) {
            do {
                picturemap.put("image_id",cursor.getString(0));
                picturemaps.set(i,picturemap);
            } while (cursor.moveToNext());
            cursor.close();
        }
    }
    return picturemaps;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值