String[] projection = new String[]{
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME, //the album it in
MediaStore.Images.ImageColumns.DATE_TAKEN,
MediaStore.Images.ImageColumns.MIME_TYPE
};
final Cursor cursor = getContext().getContentResolver()
.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null,
null, MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC");
// Put it in the image view
if (cursor.moveToFirst()) {
final ImageView imageView = (ImageView) findViewById(R.id.pictureView);
String imageLocation = cursor.getString(1);
File imageFile = new File(imageLocation);
if (imageFile.exists()) { // TODO: is there a better way to do this?
Bitmap bm = BitmapFactory.decodeFile(imageLocation);
imageView.setImageBitmap(bm);
}
}
使用
更新:
,如果你的意思是你想從一個特定的目錄中創建用於存儲圖像,你需要確保每個設備加載圖像,某些目錄被建造。您可以通過檢查BUCKET_DISPLAY_NAME
(也稱爲專輯)與創建的專輯名稱相同來使用while循環遍歷所有圖像。如果是,請先獲得第一張照片,因爲您已按照日期時間按降序排序。
int albumColumn = cur.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
do{
String album = cur.getString(albumColumn);
if(album == "YOUR CREATE DIR"){
break;
}
}while(cursor.moveToNext());
將此代碼與您自己的邏輯集成到上面的代碼中。基本上BUCKET_DISPLAY_NAME是我之前提到的專輯。
你想用戶選擇圖像或直接加載圖像 – Lucifer
我想要加載的圖像。我只需要知道最近的圖像的名稱 – mafioso
你有路徑嗎? – Lucifer