2015-05-12 7 views
0

Итак, я делаю приложение, которое позволяет пользователям выбирать изображения из своей галереи для отображения, а также снимать фотографии с камеры.Преобразование файла: /// ... string в Абсолютный URI

Изображение просматривается через растровое изображение, которое берет строку пути к файлу. Когда пользователь берет фотографию ниже код обрабатывает его (и работает):

String path = mediaStorageDir.getPath() + File.separator + "IMG_"+ timeStamp + ".jpg" 
File pictureFile = new File(path); 
Bitmap bitmap = BitmapFactory.decodeFile(pictureFile.getAbsolutePath()); 
      image1.setImageBitmap(bitmap); 

Путь в формате, как это:

/storage/emulated/0/Pictures/App/IMG_20150512_130719.jpg 

Однако, когда я пытаюсь выбрать из библиотеки, мой код установки, так что строка я возвращаю отформатирован так:

file:////storage/emulated/0/Pictures/App/IMG_20150512_130719.jpg 

Теперь, очевидно, я могу (и в настоящее время я) разбить строку и получить путь, чтобы соответствовать выше, но мне интересно, если есть стандартный способ конвертировать между ними в?

Я видел Uri.parse(), но это не работает, потому что это возвращает URI, и я хочу, чтобы строка, из которой я могу сделать файл, а затем получить абсолютный путь.

Если у вас есть четкое предположение о том, как я могу перемещаться из файла: //// string в/string, я все уши.

Благодаря

+1

Может быть, [это] (https://stackoverflow.com/questions/3401579/get-filename-and-path-from-uri-from-mediastore) даст вам подсказку о том, как это делается на Android. – GiantTree

+0

Спасибо, точное решение, которое я использовал, было следующим: http://stackoverflow.com/a/7265235/3324388 – Aggressor

ответ

0

Преобразование из файла URI в файл путь:

String fileUri = "file:///storage/emulated/0/"; 
    String filePath = Uri.parse(fileUri).getPath(); 

Преобразование из пути файла в файл URI:

String filePath2 = "/storage/emulated/0/"; 
    String fileUri2 = Uri.fromFile(new File(filePath2)).toString();