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 RecyclerView区分视图类型的Divider的实现
本篇文章主要介绍了Android RecyclerView区分视图类型的Divider的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04Android保存的文件显示到文件管理的最近文件和下载列表中的方法
这篇记录的是Android中如何把我们往存储中写入的文件,如何显示到文件管理的下载列表、最近文件列表中,需要的朋友可以参考下2020-01-01android 获取APP的唯一标识applicationId的实例
下面小编就为大家分享一篇android 获取APP的唯一标识applicationId的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-02-02
最新评论