### Gallery Images / Videos
在 Android 上要取出 Gallery 的相片 / 影片,在以前我們可以使用 media query 來達成,但是在 API 的變更後,現在要改為使用 content resolver 來達成了。
### Content Resolver
其實就是簡單的一句可以取得 content resolver,和以前 media query 比起來只差一點點。
```java
context.getContentResolver();
```
以下是一個完整的代碼來用取出 Gallery 內的圖片。
```java
// select image data
Uri uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
// columns for each row
String[] projection = {
MediaStore.MediaColumns.DATA
};
// run query
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
// get column index
int index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
// do each cursor
while (cursor.moveToNext()) {
// get the file path
String path = cursor.getString(index);
// do something with the file path
}
```
### URI
不同的 URI 是指對應不同的資料表 (Table),下面會列出兩個最常用的 Uri :
指向圖片的資料表
> android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
指向影片的資料表
> android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI