загрузить изображение из определенной папки на SDCard? - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь создать галерею / сетку, загруженную изображениями из определенной папки, которая находится на SDCard.Путь к папке известен («mnt / sdcard / iWallet / Images»), но в примерах, которые я видел в Интернете, я не уверен, как или где указать путь к папке с картинками, из которой я хочу загружать изображения.Я прочитал десятки учебников, даже учебник HelloGridView на developer.android.com, но эти учебники не учат меня тому, что я ищу.

Каждый урок, который я до сих пор читал, имеет:

A) называет изображения как Drawable из папки / res и помещает их в загружаемый массив, не используя SDCard ввсе.

B) Получил доступ ко всем изображениям на SDCard с помощью MediaStore, но не указывал, как указать путь к папке. Я хочу отображать изображения из

или

C) Предложил использовать BitmapFactory, который я понятия не имею, как его использовать.

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

моя целевая версия Android SDK 1.6 ...

спасибо ..

Ответы [ 4 ]

8 голосов
/ 20 декабря 2011

Вы можете напрямую создавать растровые изображения из decodeFile (String pathName) , который даст вам растровый объект, который можно установить в ImageView

Обновление: Ниже приведен код sudoс небольшими ошибками измените его в соответствии с вашими потребностями

File path = new File(Environment.getExternalStorageDirectory(),"iWallet/Images");
if(path.exists())
{
    String[] fileNames = path.list();
}
for(int i = 0; i < fileNames .length; i++)
{
     Bitmap mBitmap = BitmapFactory.decodeFile(path.getPath()+"/"+ fileNames[i]);
     ///Now set this bitmap on imageview
} 
2 голосов
/ 20 декабря 2011

На самом деле, вы неправильно указали фиксированный путь доступа к каталогу SD-карты, потому что в некоторых устройствах это / mnt / sdcard , а в других / sdcard .

чтобы получить доступ к корневому каталогу sd-карты, используйте getExternalStorageDirectory () , он дает вам фактический путь к корневому каталогу.

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

Эта функция перезапустит все файлы из определенной папки, в которой вы хотите передать путь до вашей папки

public static List getFilesFromDir(File aStartingDir)   
 {  
    List result = new ArrayList();  
       File[] filesAndDirs = aStartingDir.listFiles();  
     List filesDirs = Arrays.asList(filesAndDirs);  
     Iterator filesIter = filesDirs.iterator();  
     File file = null;  
     while ( filesIter.hasNext() ) {  
       file = (File)filesIter.next();  
       result.add(file); //always add, even if directory  
       if (!file.isFile()) {  
         //must be a directory  
         //recursive call!  
         List deeperList = getFileListing(file);  
         result.addAll(deeperList);  
       }  

     }  
     Collections.sort(result);  
     return result;  
   }  

BitmapDrawable d = new BitmapDrawable(getResources(), path+".jpg"); // path is ur resultant //image
img.setImageDrawable(d);

Надеюсь, это поможет вам ...

0 голосов
/ 20 декабря 2011

Вы можете получить доступ к своему каталогу, используя File класс java, затем выполнить итерацию по всем находящимся там файлам, создать растровое изображение для каждого файла, используя Bitmapfactory.decodeFile(), затем добавить растровые изображения в свою галерею.

...