一、先说一下相册列表的数据结构
_id=13343
_data=/storage/sdcard0/op****button_radio_off.hdpi.png #这个是相册的缩略图,一般是这个文件夹中最后一张图片,最后一张图片的路径
_size=2555
_display_name=button_radio_off.hdpi.png #最后一张图片的名称
mime_type=image/png #图片的类型
title=button_radio_off.hdpi
date_added=1379814044
date_modified=1379252636
description=null
picasa_id=null
isprivate=null
latitude=null
longitude=null
datetaken=1379252636000
orientation=null
mini_thumb_magic=null
bucket_id=784056807 #这个是我们这里主要找的字段相册的ID,该ID和下一个表中的ID是对应的
bucket_display_name=settings
volid=409208784
alive=1
v_folder=+0552425450;+0552425450;+
favorite=null
lock_screen=null
width=48
height=49
is_drm=0
htc_type=null
htc_filter=null
关于如何使用这个表,简单的列一些主要的代码:
private ContentResolver cr; cr = getContentResolver(); //要显示的列 String[] columns = {MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.DATA, MediaStore.Images.Media.BUCKET_ID}; //查询的条件 String groupby = " 1=1) group by (" + MediaStore.Images.Media.BUCKET_DISPLAY_NAME; //执行查询 Cursor cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null,groupby,null, MediaStore.Images.Media.DATE_MODIFIED + " DESC"); //遍历cursor,将所有的列全部输出,已经得到的所有的数据,想要干什么,随便都行 while (cr.moveToNext()){ int columnCount = cur.getColumnCount(); for(int i=0;i<columnCount; i++){ String columnName = cr.getColumnName(i); String columnValue = cr.getString(i); Log.i(TAG,columnName + "=" + columnValue); } }
上面发的是相册列表的数据表结果,其实就是我们在手机里看到的 相册,刚我们打相册后看到的是所有含有图片的文件夹,上面这些实现的就是哪些的功能。
二 、将某个文件夹中的图片列出来
图片列表数据表的结构
_id=2691 _data=/storage/sdcard0/dcim/100MEDIA/IMAG0109.jpg #相片的路径 _size=1503648 _display_name=IMAG0109.jpg #图片的文件名 mime_type=image/jpeg title=IMAG0109 不含扩展名 date_added=1378981123 date_modified=1372592538 description=null picasa_id=null isprivate=null latitude=11.3686 #这里的坐标 longitude=123.895 #这里也是坐标 datetaken=1372592531000 orientation=0 mini_thumb_magic=null bucket_id=113065532 #特别注意这里,这个是对应另一个表中的ID bucket_display_name=100MEDIA #还有这里,这里是上一个表中的名称,即文件夹的名称 volid=409208784 alive=1 v_folder=-0968832562;-0968832562;+ favorite=null lock_screen=null width=3264 height=1840 is_drm=0 htc_type=null htc_filter=null
Cursor cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null,where,null,MediaStore.Images.Media.DATE_MODIFIED + " DESC");