我很好奇如何從Android的圖庫/相機文件夾中獲取圖像。我正在查看文件管理器,無法真正掌握這些映像在文件系統中的位置。如果我去文件管理器,我找不到拍攝照片的確切位置。如果我去畫廊應用程序,我看到他們掛在「相機」文件夾。android - 從相機拍攝圖像
一些關於我試圖做到:
得到所有現有的照片,保存在某些時候和我的活動顯示它們。我正在嘗試允許電話用戶從現有照片中爲他們的個人資料分配頭像。
我很好奇如何從Android的圖庫/相機文件夾中獲取圖像。我正在查看文件管理器,無法真正掌握這些映像在文件系統中的位置。如果我去文件管理器,我找不到拍攝照片的確切位置。如果我去畫廊應用程序,我看到他們掛在「相機」文件夾。android - 從相機拍攝圖像
一些關於我試圖做到:
得到所有現有的照片,保存在某些時候和我的活動顯示它們。我正在嘗試允許電話用戶從現有照片中爲他們的個人資料分配頭像。
這裏是代碼,以防有人需要它。這是在薑餅上進行測試。
List<Image> existingPhotos = getCameraImages(this);
photosGrid = (GridView)findViewById(R.id.gvExistingPhotos);
LazyPhotosGridAdapter adapter = new LazyPhotosGridAdapter(this, existingPhotos);
photosGrid.setAdapter(adapter);
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
public static List<Image> getCameraImages(Context context) {
final String[] projection = { MediaStore.Images.Media.DATA };
final String selection = MediaStore.Images.Media.BUCKET_ID + " = ?";
final String[] selectionArgs = { CAMERA_IMAGE_BUCKET_ID };
final Cursor cursor = context.getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
null);
List<Image> result = new ArrayList<Image>(cursor.getCount());
if (cursor.moveToFirst()) {
final int dataColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
do {
final String data = cursor.getString(dataColumn);
result.add(new Image(data));
} while (cursor.moveToNext());
}
cursor.close();
return result;
}
public static final String CAMERA_IMAGE_BUCKET_NAME =
Environment.getExternalStorageDirectory().toString()
+ "/DCIM/Camera";
public static final String CAMERA_IMAGE_BUCKET_ID =
getBucketId(CAMERA_IMAGE_BUCKET_NAME);
/**
* Matches code in MediaProvider.computeBucketValues. Should be a common
* function.
*/
public static String getBucketId(String path) {
return String.valueOf(path.toLowerCase().hashCode());
}
[列表中所有的Android相機圖像]的
這是完全錯誤的,其他類似的答案也是如此。並非所有手機都將照片保存到「/ DCIM/Camera」文件夾。例如,Sony Xperia L使用「/ DCIM/100ANDRO」,我猜「100」部分有時會增加。 – 2014-05-16 14:14:09
This answer可能會有所幫助。這是一個常見問題,因此如果您搜索了StackOverflow的Android camera,您可能會得到結果。
公頃,是的,對不起我沒有」實現其相同的代碼。我在幾天前發現了相同的帖子:)欣賞幫助。 – dropsOfJupiter 2011-03-17 21:53:26
可能重複(http://stackoverflow.com/questions/4484158/list-all-camera-images-in-android) – 2011-03-15 17:32:09