Android 是否从SD卡上的特定文件夹加载图像?

Android 是否从SD卡上的特定文件夹加载图像?,android,gridview,gallery,Android,Gridview,Gallery,我正在尝试创建一个gallery/gridview,其中加载了SD卡上特定文件夹中的图像。文件夹的路径是已知的(“mnt/sdcard/iWallet/Images”),但在我在线看到的示例中,我不确定如何或在何处指定要从中加载图像的图片文件夹的路径。我已经阅读了几十篇教程,甚至是developer.android.com上的HelloGridView教程,但这些教程并没有教会我在寻找什么 到目前为止,我阅读的每一篇教程都有: A) 从/res文件夹中将图像作为可绘制文件调用,并将其放入要加载的

我正在尝试创建一个gallery/gridview,其中加载了SD卡上特定文件夹中的图像。文件夹的路径是已知的(“mnt/sdcard/iWallet/Images”),但在我在线看到的示例中,我不确定如何或在何处指定要从中加载图像的图片文件夹的路径。我已经阅读了几十篇教程,甚至是developer.android.com上的HelloGridView教程,但这些教程并没有教会我在寻找什么

到目前为止,我阅读的每一篇教程都有:

A) 从/res文件夹中将图像作为可绘制文件调用,并将其放入要加载的数组中,而不使用SD卡

B) 使用MediaStore访问SD卡上的所有图片,但未指定如何设置要显示图像的文件夹的路径

C) 建议使用BitmapFactory,我一点也不知道如何使用它

如果我用了错误的方法,请让我知道,并指导我正确的方法去做我想做的事情

我的目标android sdk版本1.6


谢谢..

实际上,您提到访问SD卡目录的固定路径是错误的,因为在某些设备中它是/mnt/sdcard,而在其他设备中则是/sdcard


因此,要访问sd卡的根目录,请使用,它提供了根目录的实际路径。

您可以直接从中创建位图,从而提供可以在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
} 
File path=新文件(Environment.getExternalStorageDirectory(),“iWallet/Images”);
if(path.exists())
{
String[]fileNames=path.list();
}
for(int i=0;i
您可以使用
文件
java类访问目录,然后遍历其中的所有文件,使用
位图工厂.decodeFile()
为每个文件创建位图,然后将位图添加到图库中。

此函数将从需要传递路径到您的文件夹的特定文件夹中重新返回所有文件

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


希望它能对你有所帮助。

在你的示例中,插入从SDCard上的特定文件夹加载图像的路径。检查这个,来自Hiren Dabi:参见第43行,替换为----------------->cursor=managedQuery(Uri.parse(“你的特定路径”),投影,//哪些列返回null,//返回所有行null,MediaStore.Images.Thumbnails.IMAGE\u ID);
BitmapDrawable d = new BitmapDrawable(getResources(), path+".jpg"); // path is ur resultant //image
img.setImageDrawable(d);