Не удается открыть файл изображения, хранящийся в SDCard - PullRequest
0 голосов
/ 19 декабря 2011

В моем приложении я сохраняю содержимое tableLayout как изображение в папке.Чтобы позволить пользователю открыть файл из сохраненных изображений, я создал текстовый файл, содержащий имена этих файлов.Эти имена файлов будут загружены в массив (файлы) позже.Пользователь нажимает «открыть», чтобы увидеть список имен файлов и выбирает тот, который он хочет открыть.Я использую следующий код для открытия файла.

final String imageInSD = extStorageDirectory+"/myFolder/"+files[which];
//where 'files' is an array of strings and contains the names of files.
//and 'which' is the index of the selected element in the list  
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);  
ImageView ivv=(ImageView) findViewById(R.id.imageView);
ivv.setImageBitmap(bitmap);

, когда я пытаюсь это сделать, ничего не происходит, поэтому я попробовал следующее

final String imageInSD = extStorageDirectory+"/myFolder/myFile.PNG";
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);  
ImageView ivv=(ImageView) findViewById(R.id.imageView);
ivv.setImageBitmap(bitmap);

, и оно показывает изображение с именем myFile.Я уже проверил, правильно ли я получаю правильное имя файла и путь, и это кажется правильным.(когда я нажимаю на myFile.PNG в списке и показываю путь, который я получаю "/mnt/sdcard/myFolder/myFile.PNG").

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

1 Ответ

1 голос
/ 19 декабря 2011

Конкатенация строк не является хорошим способом объединения путей. Лучше использовать конструктор файлов :

File directory = new File(extStorageDirectory, "myFolder");
File fileInDirectory = new File(directory, files[which]);
Bitmap bitmap = BitmapFactory.decodeFile(fileInDirectory.getAbsolutePath());
...