android 获取手机中的所有图片或某一目录下的图片方法

获取手机中的所有图片,并过滤获取某一目录下的图片。(注释掉的代码可以按照目录分组)

private void getAllPhotoInfo() {
    new Thread(new Runnable() {
      @Override
      public void run() {
//        List<MediaBean> mediaBeen = new ArrayList<>();
        HashMap<String,List<MediaBean>> allPhotosTemp = new HashMap<>();//所有照片
        Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        String[] projImage = { MediaStore.Images.Media._ID
            , MediaStore.Images.Media.DATA
            ,MediaStore.Images.Media.SIZE
            ,MediaStore.Images.Media.DISPLAY_NAME};
        final Cursor mCursor = getContentResolver().query(mImageUri,
            projImage,
            MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?",
            new String[]{"image/jpeg", "image/png"},
            MediaStore.Images.Media.DATE_MODIFIED+" desc");

        if(mCursor!=null){
          while (mCursor.moveToNext()) {
            // 获取图片的路径
            String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
            int size = mCursor.getInt(mCursor.getColumnIndex(MediaStore.Images.Media.SIZE))/1024;
            String displayName = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
            //用于展示相册初始化界面
            if(path.contains("/storage/emulated/0/messageBoard/photoImgs")){
              mediaBeen.add(new MediaBean(path,size,displayName));
            }

//            // 获取该图片的父路径名
//            String dirPath = new File(path).getParentFile().getAbsolutePath();
//            
//            //存储对应关系
//            if (allPhotosTemp.containsKey(dirPath)) {
//              List<MediaBean> data = allPhotosTemp.get(dirPath);
//              data.add(new MediaBean(path,size,displayName));
////              Log.e(TAG,"getAllPhotoInfo "+data.size()+",path="+data.get(0).getPath()+",name="+data.get(0).getDisplayName());
//              continue;
//            } else {
//              List<MediaBean> data = new ArrayList<>();
//              data.add(new MediaBean(path,size,displayName));
//              allPhotosTemp.put(dirPath,data);
////              Log.e(TAG,"getAllPhotoInfo else "+data.size()+",path="+data.get(0).getPath()+",name="+data.get(0).getDisplayName());
//            }
          }
          mCursor.close();
        }
        //更新界面
        runOnUiThread(new Runnable() {
          @Override
          public void run() {
            //...
            Log.e(TAG,"mediaBeen="+mediaBeen.size());
            albumAdapter = new AlbumAdapter(AvaterActivity.this,mediaBeen);
            gvAlbum.setAdapter(albumAdapter);
            gvAlbum.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent cropIntent = new Intent(mContext, CropImgActivity.class);
                cropIntent.putExtra("status",status);
                cropIntent.putExtra("takepath",mediaBeen.get(position).getPath());
                startActivity(cropIntent);
              }
            });
          }
        });
      }
    }).start();
  }

以上这篇android 获取手机中的所有图片或某一目录下的图片方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。