Selva
Selva

Reputation: 839

load Image from specific folder on the sdcard?

I'm attempting to create a gallery/gridview that is loaded with images from a specific folder that resides on an SDCard. The path to the folder is known, ("mnt/sdcard/iWallet/Images") , but in the examples I've seen online I am unsure how or where to specify the path to the pictures folder I want to load images from. I have read through dozens of tutorials, even the HelloGridView tutorial at developer.android.com but those tutorials do not teach me what i am seeking.

Every tutorial I have read so far has either:

A) called the images as a Drawable from the /res folder and put them into an array to be loaded, not using the SDCard at all.

B) Accessed all pictures on the SDCard using the MediaStore but not specifying how to set the path to the folder I want to display images form

or

C) Suggested using BitmapFactory, which I haven't the slightest clue how to use.

If I'm going about this in the wrong way, please let me know and direct me toward the proper method to do what I'm trying to do.

my target android sdk version 1.6...

thanks..

Upvotes: 0

Views: 14485

Answers (4)

ingsaurabh
ingsaurabh

Reputation: 15269

You can directly create Bitmaps from decodeFile (String pathName) that will give you Bitmap object that can be set on ImageView

Update: Below is sudo code with minor errors modify it to suit your needs

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
} 

Upvotes: 8

Richa
Richa

Reputation: 3193

This function will resturn all the files from specific folder you need to pass path till ur folder

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

Hope it help u...

Upvotes: 1

Alexander
Alexander

Reputation: 48262

You can access your directory using File java class, then iterate through all the files in there, create a bitmap for each file using Bitmapfactory.decodeFile() then add the bitmaps to your gallery.

Upvotes: 0

Paresh Mayani
Paresh Mayani

Reputation: 128428

Actually, you are wrong to mention fixed path to access SD-card directory, because in some device it is /mnt/sdcard and in other /sdcard.

so to access root directory of sd-card, use the getExternalStorageDirectory(), it gives you actual path of root directory.

Upvotes: 2

Related Questions