android开发 获取相册名称_Android获取手机上各个相册名称和相片的方法

下面是我用来获取相册名称以及内容的方法,比较猥琐的方法,但是也实现了功能

就是一个asyctask,将就参考参考,本人记录

class ScanAllImageTask extends android.os.AsyncTask>{

@Override

protected List doInBackground(Boolean... params) {

// 指定要查询的uri资源

Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

// 获取ContentResolver

ContentResolver contentResolver = CircleAlbum.this.getContentResolver();

// 查询的字段

String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA};

// 条件

String selection = MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=? or "

+ MediaStore.Images.Media.MIME_TYPE + "=?";

// 条件值(這裡的参数不是图片的格式,而是标准,所有不要改动)

String[] selectionArgs = { "image/jpeg", "image/bmp", "image/png" };

// 排序

String sortOrder = MediaStore.Images.Media.DATA + " asc";

// 查询sd卡上的图片

Cursor cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);

List albums = new ArrayList();

if (cursor != null) {

CircleAlbumItem album = null;

String tempFolderPath = "";

cursor.moveToFirst();

do{

String imagePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));

if(!tempFolderPath.equals(getFolderPath(imagePath))){

//若文件夹名相同,则先保存之前的album

if(album != null){

albums.add(album);

}

tempFolderPath = getFolderPath(imagePath);

album = new CircleAlbumItem();

album.setCoverPhotoPathId(cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media._ID)));

album.setPhotoAlbumName(getFolderName(tempFolderPath));

album.setPhotoNum(1);

}

else{

album.setPhotoNum(album.getPhotoNum()+1);

}

}while(cursor.moveToNext());

// 关闭cursor

cursor.close();

}

return albums;

}

private String getFolderPath(String filePath){

int endIndex = filePath.lastIndexOf(File.separator);

return filePath.substring(0, endIndex);

}

private String getFolderName(String folderPath){

int startIndex = folderPath.lastIndexOf(File.separator)+1;

return folderPath.substring(startIndex);

}

@Override

protected void onPostExecute(List result) {

super.onPostExecute(result);

circleAlbumDatas = result;

CircleAlbumAdapter circleAlbumAdapter = new CircleAlbumAdapter();

mGridViewCircleAlbum.setAdapter(circleAlbumAdapter);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值