http://hi.csdn.net/attachment/201009/18/65182_1284810097qx88.jpg

解决方案 »

  1.   

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    使用SD需要加permission
      

  2.   

    http://www.blogjava.net/changcheng/archive/2010/03/01/314214.html
      

  3.   

    该怎么给你说那.第一种方式实现的是用本身的媒体扫描来做的,不是很好,你那种方式得到的是一个缩略图,其实你URI打开的是一个提供器里面的数据库,在数据库里面有一个DATA字段,哪个里面才是路径.
    第二种方式是对整个SD卡的文件进行读取,但是你的哪个方法还是有问题.第一就是在目录下面还有目录的时候你没有解决.第二就是它仅仅是对文件名进行匹配,如果你对一个文件的名字改了,它也可以得到该数据,但是本身并不能读取.'
    建议还是使用本身的媒体扫描.
      

  4.   

    這個不需要如此複雜
    String path = "/sdcard/xxxx.png";
    Bitmap bitmap = BitmapFactory.decodeFile(path); //這時候你已經得到了這個圖片了
    bitmap.getWidth();
    bitmap.getHeight();
    ......//各種操作
      

  5.   

    看錯你的題目了,是所有的圖片這個就是一個文件遊覽器的功能,然後把後綴屬於圖片的取出來
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <array name="fileEndingImage">
            <item>.png</item>
            <item>.gif</item>
            <item>.jpg</item>
            <item>.jpeg</item>
            <item>.bmp</item>
        </array>
    <array name="fileEndingAudio">
            <item>.mp3</item>
            <item>.wav</item>
            <item>.ogg</item>
            <item>.midi</item>
        </array>
    <array name="fileEndingPackage">
            <item>.jar</item>
            <item>.zip</item>
            <item>.rar</item>
            <item>.gz</item>
        </array>
    <array name="fileEndingWebText">
            <item>.htm</item>
            <item>.html</item>
            <item>.php</item>
        </array>
    </resources>
    第一個ARRAY就是圖片類的,然後
    for(File currentFile : files){
    if (currentFile.isDirectory()) {
    currentIcon = getResources().getDrawable(R.drawable.folder);
    }else{
    String fileName = currentFile.getName();
    if(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingImage))){
    //這裡寫你對於圖片類文件的操作
    }else if(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingWebText))){
    //網絡類文件
    }else if(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingPackage))){
    //壓縮包類文件
    }else if(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingAudio))){
    //音頻類文件
    }else{
    //其他文件
    }
    }
      

  6.   

    AndroidManifest.xml中加入
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    代码:
    private static final String TAG = "Test";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            List<File> listFile = new ArrayList<File>();
            String path = "/sdcard/";
            try {
                File home = new File(path);
                if (home.listFiles(new FileFilters()).length>0) {
                    for (File file :home.listFiles(new FileFilters())) {
                        listFile.add(file);//取得文件
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            Log.d(TAG, "listFile===>"+listFile);
        }
        class FileFilters implements FilenameFilter{
            @Override
            public boolean accept(File dir, String filename) {
                // TODO Auto-generated method stub
                if (filename.endsWith(".jpg")||
                        filename.endsWith(".gif")||
                        filename.endsWith(".png")||
                        filename.endsWith(".bmp")) {
                    return true;
                }
                return false;
            }
        }
    }
    Log显示:
    09-21 02:35:10.035: DEBUG/Test(249): listFile===>[/sdcard/周杰伦AlbumArt.jpg, /sdcard/陈奕迅AlbumArt.jpg]