读取SD卡内所有图片

第一种方法是便利所有文件夹,然后过滤后缀名,此方法效率不太高,不做介绍。

第二种方法:

/**
     * 获取图片路径及其对应的文件夹名称
     * @return
     */
    protected Map> getPicterMap() {
        Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        ContentResolver mContentResolver = getContentResolver();
        // 只查询jpeg和png的图片
        Cursor mCursor = mContentResolver.query(mImageUri, null, MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?",
                new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED);
        while (mCursor.moveToNext()) {
            // 获取图片的路径
            String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
            // 获取该图片的父路径名
            String parentName = new File(path).getParentFile().getName();
            // 根据父路径名将图片放入到mGruopMap中
            if (!mGruopMap.containsKey(parentName)) {
                List chileList = new ArrayList();
                chileList.add(path);
                mGruopMap.put(parentName, chileList);
            } else {
                mGruopMap.get(parentName).add(path);
            }
        }
        mCursor.close();
        mCursor = null;
 
        return mGruopMap;
    }
     
    /**
     * 获取所有图片路径
     * @return
     */
    protected List getPicterList() {
        Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        ContentResolver mContentResolver = getContentResolver();
        // 只查询jpeg和png的图片
        Cursor mCursor = mContentResolver.query(mImageUri, null, MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?",
                new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED);
        while (mCursor.moveToNext()) {
            // 获取图片的路径
            String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
            // 获取该图片的父路径名
            String parentName = new File(path).getParentFile().getName();
             
            picList.add(path);
        }
         
        mCursor.close();
        mCursor = null;
 
        return picList;
    }


转载于:https://my.oschina.net/wvliang/blog/362718

你可能感兴趣的:(读取SD卡内所有图片)