1. 获取手机本地的全部图片的3种方式, 调用方法之前要先判断读写权限:
不多说了,直接上代码
public class GetGalleryPhotosUtils { /**** * //获取所有图片存入list集合返回,MediaStore.Images.Media.DATA中的Images * @param resolver getContentResolver() * imaPathList = getGalleryPhotos(getContentResolver()); * @return /storage/emulated/0/Pictures/Screenshots/Screenshot_20200401_112209_com.tencent.trtc.jpg */ public static ArrayList<String> getGalleryPhotos(ContentResolver resolver) { if (resolver == null){ return null; } ArrayList<String> galleryList = new ArrayList<String>(); try { //获取所在相册和相册id final String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID}; //按照id排序 final String orderBy = MediaStore.Images.Media._ID; //相当于sql语句默认升序排序orderBy,如果降序则最后一位参数是是orderBy+" desc " Cursor imagecursor = resolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy); //从数据库中取出图存入list集合中 if (imagecursor != null && imagecursor.getCount() > 0) { while (imagecursor.moveToNext()) { int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA); // Log.d("tgw7", "getGalleryPhotos: " + dataColumnIndex); // // file:///storage/emulated/0/Pictures/Screenshots/Screenshot_20200401_112209_com.tencent.trtc.jpg // String path = "file://" + imagecursor.getString(dataColumnIndex); String path = imagecursor.getString(dataColumnIndex); LogUtils.e( "获取手机图片 getGalleryPhotos path: " + path); galleryList.add(path); } } } catch (Exception e) { e.printStackTrace(); } // 进行反转集合 Collections.reverse(galleryList); return galleryList; } /**** * //获取所有图片存入list集合返回,MediaStore.Images.Media.DATA中的Images * @param * @return /storage/emulated/0/Pictures/Screenshots/Screenshot_20200401_112209_com.tencent.trtc.jpg */ public static List<String> getCalleryPhotos2(Context context){ if (context == null){ return null; } List<String> imaPathList = new ArrayList<>(); Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; ContentResolver mContentResolver = context .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"}, new String[]{"image/gif"}, MediaStore.Images.Media.DATE_MODIFIED); Cursor mCursor2 = 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); Log.e("TAG", mCursor.getCount() + ""); while (mCursor.moveToNext()) { // 获取图片的路径 String path = mCursor.getString(mCursor .getColumnIndex(MediaStore.Images.Media.DATA)); imaPathList.add(path); } while (mCursor2.moveToNext()) { // 获取图片的路径 String path = mCursor2.getString(mCursor2 .getColumnIndex(MediaStore.Images.Media.DATA)); imaPathList.add(path); } Collections.reverse(imaPathList); mCursor.close(); mCursor2.close(); return imaPathList; } private static ContentResolver mContentResolver; /**** * //获取所有图片存入list集合返回,MediaStore.Images.Media.DATA中的Images * @param * @return /storage/emulated/0/Pictures/Screenshots/Screenshot_20200401_112209_com.tencent.trtc.jpg */ public static List<String> getCalleryPhotos3(Context context){ if (context == null){ return null; } List<String> imaPathList = new ArrayList<>(); Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; mContentResolver = context.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); Log.e("TAG", mCursor.getCount() + ""); while (mCursor.moveToNext()) { // 获取图片的路径 String path = mCursor.getString(mCursor .getColumnIndex(MediaStore.Images.Media.DATA)); imaPathList.add(path); } mCursor.close(); return imaPathList; } }
2. 使用方法:
第一种:
List<String> iimaPathList = GetGalleryPhotosUtils.getGalleryPhotos(getContentResolver());
第二种、
List<String> imaPathList = GetGalleryPhotosUtils.getCalleryPhotos2(mContext);
第三种、
List<String> imaPathList = GetGalleryPhotosUtils.getCalleryPhotos3(mContext);
3. 运行一下,看看效果吧。
关注公众号,了解更多精选文章吧。