Я пытаюсь заставить пользователей выбирать между фотосъемкой с помощью камеры по умолчанию для устройства и выбирать из галереи изображений также по умолчанию для устройства.
Я могу заставить камеру делать снимки ион будет отображаться в приложении просто отлично, так как кажется, что URI идет прямо к файлу JPG.Однако путь, указанный для URI галереи, очень отличается и не отображает изображение вообще.
Вот пути, которые я получаю:
КОГДА СДЕЛАНО ИЗ КАМЕРЫ : /mnt/sdcard/filename.jpg
КОГДА ВЫБРАЛИ ИЗ ГАЛЕРЕИ : / external / images / media / # (# - это идентификационный номер / миниатюра, которую я считаю)
Код, используемый для получения обоих путей:
КАМЕРА :
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
mImageCaptureUri =
Uri.fromFile(new file(Environment.getExternalStorageDirectory(),
"fname_" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
ГАЛЕРЕЯ :
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Complete action using"), PICK_FROM_FILE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
С Галереей она открывается, и я могу хорошо просматривать, она просто не отображает изображение, как при съемке.
Код, используемый для добавления изображений в мое приложение после выбора / съемки,:
ImageView getMyphoto = (ImageView) findViewById(R.id.usePhoto);
String stringUrl = prefSettings.getString("myPic", "");
Uri getIMG = Uri.parse(stringUrl);
getMyphoto.setImageURI(null);
getMyphoto.setImageURI(getIMG);