本文章向大家介绍怎么在android中获取手机中的所有图片的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Android是什么
Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
获取手机中的所有图片,并过滤获取某一目录下的图片
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中获取手机中的所有图片的全部内容了,希望大家多多支持天达云!