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

就是一个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);

}

}

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

  1. android 获取wifi的ip地址吗,Android开发实现在Wifi下获取本地IP地址的方法

    本文实例讲述了Android开发实现在Wifi下获取本地IP地址的方法.分享给大家供大家参考,具体如下: 代码核心介绍: WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开 ...

  2. android获取网络时区_Android获取系统时间以及网络时间

    项目开发中,很多时候会用到android的时间,罗列一下获取的时间的方式,和大家共同学习进步 一.获取系统时间 1.通过Calendar类来获取系统当前的时间 Calendar calendar = ...

  3. Android开发 Intent传递参数,获取数据为null

    android开发 Activity通过Intent传递参数,获取失败的原因 启动一个有返回值的activity (MapActivity) Intent intent = new Intent(Up ...

  4. android蓝牙查看电池容量_Android获取电池电量和电池容量

    测试APK,获取电量信息,做一些耗电相关的测试,必须要用到一段时间内的耗电百分比,和当前手机的电池容量,计算出平均的耗电电流 1. 获取电池电量百分比 可以使用BatteryManager,废话不多说 ...

  5. Android开发:基于原生API获取位置信息、卫星信号个数及参与定位的卫星个数

    目录 概述 权限申请及开启GPS 调用原生API进行定位 获取设备收到的卫星信号个数 获取用于定位的卫星信号个数 成果图 概述 最近在做室内外无缝定位的相关demo,室外定位中,GNSS定位方法具有精 ...

  6. Android开发实现QQ登陆并获取信息、分享消息到QQ

    很多APP都有分享文章或者图片甚至分享APP给QQ好友的功能,查阅了比较多的资料,也翻看了腾讯开放平台上的API文档,总是会出现各种各样的问题!经过几个小时的排查,也基本算是实现了一些功能! 总之:还 ...

  7. java android 获取当前时间_Android获取当前系统日期和时间

    详细内容 本文用三种方法实现了在安卓上的时间获取功能,喜欢的小伙伴收藏一下,去试试吧! 第一种方法SimpleDateFormat simpleDateFormat = new SimpleDateF ...

  8. Android开发笔记(一百二十四)自定义相册

    画廊Gallery Gallery是一个早期的画廊控件,左右滑动手势可展示内嵌的图片列表,类似于一个平面的万花筒.虽然Android现在将Gallery标记为Deprecation(表示已废弃),建议 ...

  9. android 代码调用 相册 小米,关于小米手机调用系统相册崩溃的问题

    最近在使用第三方聊天插件leancloud的时候,调用系统相册的图片,相同的代码.小米手机选择了图片之后,小米机会崩掉(别的机子,啥版本都没问题).看异常信息,指示cursor.moveToFirst ...

  10. android开发沉浸式标题栏_android实现沉浸式状态栏

    前言 在android开发的过程中,经常会涉及到沉浸式状态栏的问题,说白了,就是手机屏幕顶部栏的颜色显示问题,为了实现美感一体的效果,许多app都已经开始了沉浸式状态栏的显示,这里,我也简单介绍一个沉 ...

最新文章

  1. 【Dlib】dlib和opencv的互转
  2. react native中一次错误排查 Error:Error: Duplicate resources
  3. php跨域请求解决方案_swoft2 -跨域与中间件详解
  4. 汇编题目:编写包含多个功能子程序的中断例程
  5. Java架构-面试怎么谈薪资——让自己的利益最大化
  6. cisco3550交换机限速配置
  7. 客户端请求时间和服务端处理时间不匹配问题
  8. 一个关于反序列化的小问题
  9. Directx11教程40 纹理映射(10)
  10. PCL对点云进行滤波处理并进行颜色可视化
  11. Linux安全加固的常用方法
  12. 和利时HOLLYSYS MACS-K系列DCS介绍
  13. oracle trap,配置SNMP trap
  14. java 一年有多少周_Java8根据一年中的第几周获得Monday
  15. 现代软件工程 第一章 【概论】练习与讨论 第10题 邓杰
  16. ZoomIt、Snipaste、Typora 三剑客 - 屏幕讲演日常学习赞不绝口的利器
  17. 截取计算机全屏画面的方法有,全屏截图快捷键的快捷键是什么
  18. 基于卷积神经网络的句子分类模型【经典卷积分类附源码链接】
  19. html中左括号怎么写,HTML基础 特殊符号 左右尖括号 与 货币 乘 除
  20. 876. 快速幂求逆元

热门文章

  1. Wps文档如何批量替换不同的数字?
  2. 荣耀30青春版鸿蒙,良心:荣耀30青春版保留3.5mm耳机孔
  3. QQ空间伤感日志:眼泪流不尽,痛苦说不完
  4. Python md5去重图片文件
  5. 《考试脑科学》--樊登听书笔记
  6. 该怎样选择适合自己的小游戏引擎?
  7. DOM(Document Object Model )
  8. 整数规划案例:存货布置
  9. 公主同盟第4关(GBA)奥兰多东部
  10. 《看监守自盗——2008年金融危机》有感