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

 更新时间:2018年02月02日 10:28:51   作者:liuye066  
下面小编就为大家分享一篇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 获取手机中的所有图片或某一目录下的图片方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android webview注入JS代码 修改网页内容操作

    Android webview注入JS代码 修改网页内容操作

    这篇文章主要介绍了Android webview注入JS代码 修改网页内容操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Android空心圆及层叠效果实现代码

    Android空心圆及层叠效果实现代码

    这篇文章主要为大家详细介绍了Android空心圆及层叠效果实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • android ListView深入理解

    android ListView深入理解

    在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,需要的朋友可以参考下
    2012-11-11
  • Android判断Activity是否在最上层的方法

    Android判断Activity是否在最上层的方法

    这篇文章主要介绍了Android判断Activity是否在最上层的方法,涉及Android针对Activity属性判断与操作相关技巧,代码非常简单易懂,需要的朋友可以参考下
    2016-01-01
  • Android AnalogClock简单使用方法实例

    Android AnalogClock简单使用方法实例

    这篇文章主要介绍了Android AnalogClock简单使用方法,结合实例形式简单分析了AnalogClock的布局调用技巧,需要的朋友可以参考下
    2016-01-01
  • Android RecyclerView点击事件

    Android RecyclerView点击事件

    这篇文章主要为大家详细介绍了Android RecyclerView点击事件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • android实现点击按钮切换不同的fragment布局

    android实现点击按钮切换不同的fragment布局

    这篇文章主要为大家详细介绍了android实现点击按钮切换不同的fragment布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Android的多媒体管理库Glide的基本使用示例

    Android的多媒体管理库Glide的基本使用示例

    这篇文章主要介绍了Android的多媒体管理库Glide的基本使用示例,Glide在图片App中的表现非常好,Google旗下的Yelp也在使用,需要的朋友可以参考下
    2016-04-04
  • Flutter应用集成极光推送的实现示例

    Flutter应用集成极光推送的实现示例

    这篇文章主要介绍了Flutter应用集成极光推送的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Android选择与上传图片之PictureSelector教程

    Android选择与上传图片之PictureSelector教程

    这篇文章主要介绍了在Android中对于图片的选择与上传方法,本文介绍了PictureSelector的相关使用教程,学习Android的同学进来看看吧
    2021-08-08

最新评论