① 如何獲取相冊路徑
這里有一個方法可以獲取手機所有包含圖片的文件夾路徑,不知道是不是你想要的效果,代碼如下
[mw_shl_code=java,true] private void getPhotoThumbnail() {
//查詢的列
String[] projection = new String[] { MediaStore.Images.Media._ID,
MediaStore.Images.Media.BUCKET_ID, // 直接包含該圖片文件的文件夾ID,防止在不同下的文件夾重名
MediaStore.Images.Media.BUCKET_DISPLAY_NAME, // 直接包含該圖片文件的文件夾名
MediaStore.Images.Media.DISPLAY_NAME, // 圖片文件名
MediaStore.Images.Media.DATA, // 圖片絕對路徑
"count("+MediaStore.Images.Media._ID+")"//統計當前文件夾下共有多少張圖片
};
//這種寫法是為了進行分組查詢,詳情可參考http://yelinsen.iteye.com/blog/836935
String selection = " 0==0) group by bucket_display_name --(";
ContentResolver cr = this.getContentResolver();
Cursor cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection,null, "");
PhotoFolder pf = null;
while(cursor.moveToNext()){
String folderId = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_ID));
String folder = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
long fileId = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media._ID));
String finaName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
int count = cursor.getInt(5);//該文件夾下一共有多少張圖片
BitmapFactory.Options options = new BitmapFactory.Options();
//Thumbnails.getThumbnail(cr, fileId, Thumbnails.MICRO_KIND, options)獲取指定圖片縮略片
pf = new PhotoFolder(folderId,folder,count,Thumbnails.getThumbnail(cr, fileId, Thumbnails.MICRO_KIND, options));
list.add(pf);
}
if(null!=cursor&&!cursor.isClosed()){
cursor.close();
}
}[/mw_shl_code]轉載