2015-07-16 3 views
0

Я пытаюсь получить FilePath моего сохраненного изображения, который хранится как и после использования ACTION_IMAGE_CAPTURE намерения:Получение путь файла при сохранении изображения

if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 


     mImageOne.setImageBitmap(imageBitmap); 
     SaveImageOne(imageBitmap); 

} 

SaveImageFunction

private void SaveImageOne(Bitmap finalBitmap) { 

    String root = Environment.getExternalStorageDirectory().toString(); 
    File myDir = new File(root + "/saved_images"); 
    myDir.mkdirs(); 
    String fname = "Image-1.jpg"; 
    File file = new File (myDir, fname); 
    if (file.exists()) file.delete(); 
    try { 
     FileOutputStream out = new FileOutputStream(file); 
     finalBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); 
     out.flush(); 
     out.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Таким образом я могу сохраните этот «путь к файлу» сохраненного файла в SharedPreferences, который будет доступен позже, и передайте ACTION_SEND в качестве вложения изображения.

ответ

0

после этой строки out.close(); записать эту линию

String pathString = file.getAbsolutePath(); // gives you the path of the file 

теперь использовать его, как вы хотите

+0

Как бы я идти об использовании этого pathString в этом: emailIntent.putExtra (Intent.EXTRA_STREAM, Uri .parse ("файл: ///mnt/sdcard/Myimage.jpeg")); ? Я бы сделал: emailIntent.putExtra (Intent.EXTRA_STREAM, Uri.parse ("file: ///" + pathString)); или что-то подобное? – Shaniqua

+0

да вы пробовали? еще один длинный путь - это 'emailIntent.putExtra (Intent.EXTRA_STREAM, Uri.parse (новый файл (pathString))),' надеюсь, что он решает его? если есть ошибки, дайте мне знать @Shaniqua – Elltz

Смежные вопросы