2013-06-27 4 views
4

Привет, я хотел изменить образ моего ImageView, используя путь, который я сохранил в своей базе данных SQLite. Ну, чего я хочу достичь, так это то, что он запускается в секунду всякий раз, когда изображение доступно, оно будет отображаться и оставаться до тех пор, пока не появится следующее изображение. Но будет использовать изображение по умолчанию, когда вообще ничего не показывать. Но на данный момент главной проблемой, которую я хотел решить, является то, что я не могу установить imageView, используя путь, который у меня есть. Я пробовал разные решения, такие как создание растрового изображения из пути, но все еще получаю ту же ошибку, что: E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /mnt/sdcard/Echo/Images/Awesome4 - 00:01.jpg: open failed: ENOENT (No such file or directory)Настройка изображения ImageView с использованием пути файла из внешнего хранилища

Вот мой код, как сейчас:

String path = db.getImagePath(file_name, curTime); 

          Log.v("Your image filename", file_name); 
          Log.v("Your currentPosition", curTime); 

          Log.v("Your Path Playback edit", path); 

          try{ 
           preview.setImageURI(Uri.parse(Environment.getExternalStorageDirectory()+"/Echo/Images/"+file_name)); 
          }catch (Exception e){ 
           e.printStackTrace(); 
           preview.setImageResource(R.drawable.sample_image); 
          } 

Это работает под работоспособный метод. и Вот LogCat я получаю:

V/Your Path: /mnt/sdcard/Echo/Images/ 
V/Your image filename: Awesome4 - 00:01.jpg 
V/Your currentPosition: 00:01 
V/Your Path Playback edit: /mnt/sdcard/Echo/Images/ 
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /mnt/sdcard/Echo/Images/Awesome4 - 00:01.jpg: open failed: ENOENT (No such file or directory) 
I/System.out: resolveUri failed on bad bitmap uri: /mnt/sdcard/Echo/Images/Awesome4 - 00:01.jpg 
D/dalvikvm: GC_CONCURRENT freed 380K, 14% free 3067K/3560K, paused 74ms+3ms, total 226ms 
V/Your image filename: Awesome4 - 00:02.jpg 
V/Your currentPosition: 00:02 
V/Your Path Playback edit: [ 06-27 04:14:07.691 6043: 6043 E/BitmapFactory ] 
/mnt/sdcard/Echo/Images/Awesome4 - 00:02.jpg: open failed: ENOENT (No such file or directory) 

ответ

6

проверить это, если это поможет.

preview.setImageURI(Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Echo/Images/"+file_name)); 

что, как я это сделать ...

public final static String APP_PATH_SD_CARD = "/DesiredSubfolderName/"; 
public final static String APP_THUMBNAIL_PATH_SD_CARD = "thumbnails"; 

public boolean saveImageToExternalStorage(Bitmap image) { 
String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD + APP_THUMBNAIL_PATH_SD_CARD; 

try { 
File dir = new File(fullPath); 
if (!dir.exists()) { 
dir.mkdirs(); 
} 

OutputStream fOut = null; 
File file = new File(fullPath, "desiredFilename.png"); 
file.createNewFile(); 
fOut = new FileOutputStream(file); 

// 100 means no compression, the lower you go, the stronger the compression 
image.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
fOut.flush(); 
fOut.close(); 

MediaStore.Images.Media.insertImage(context.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()); 

return true; 

} catch (Exception e) { 
Log.e("saveToExternalStorage()", e.getMessage()); 
return false; 
} 
} 
+0

На самом деле у меня только один комментарий на этом. Он должен ограничивать входной текст, поскольку некоторые специальные символы не разрешены в именах файлов. :)) Спасибо, так или иначе, это помогает мне понять мои ошибки тогда. :) – KaHeL