2011-12-20 2 views
0

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

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

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

B) Accessed все фотографии на SDCard с помощью Mediastore, но не уточняя, как задать путь к папке, я хочу, чтобы отобразить изображения образуют

или

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

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

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

спасибо ..

+0

проверить это, http: //stackoverflow.com/a/7304011/603744 –

+0

От Hiren Dabhi: http://mobile.dzone.com/news/displaying-images-sd-card –

+0

http://mobile.dzone.com/news/displaying- images-sd-card –

ответ

5

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

Update: Ниже Суд код с незначительными ошибками изменить его в соответствии с вашими потребностями

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 
} 
+0

См. Обновленный ответ – ingsaurabh

+0

+1 Я пойду с этим ответом, если мне нужно реализовать. –

+0

спасибо u ingsaurabh .. – Selva

2

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

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

+3

k Paresh Mayani..thanks for ur reply .. – Selva

0

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

1

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

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); 

Надеется, что это поможет U ...

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