获取android sd卡中某个文件夹下的所有图片

转自:http://blog.csdn.net/wei18359100306/article/details/40858723

由于最近的一个项目中需要获取某个文件夹下的所有.txt文件,所以自己研究了一个获取sd卡中某个目录下的所有图片格式的图片路径

先看效果图:

获取android sd卡中某个文件夹下的所有图片


详细代码如下:

[html] view plain copy
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:paddingBottom="@dimen/activity_vertical_margin"  
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"  
  7.     android:paddingRight="@dimen/activity_horizontal_margin"  
  8.     android:paddingTop="@dimen/activity_vertical_margin"  
  9.     tools:context=".MainActivity" >  
  10.       
  11.     <ListView   
  12.         android:id="@+id/lv_show_path"  
  13.         android:layout_width="fill_parent"  
  14.         android:layout_height="fill_parent"  
  15.         android:divider="@android:color/darker_gray"  
  16.         android:dividerHeight="1dp"  
  17.         ></ListView>  
  18.   
  19. </RelativeLayout>  

[java] view plain copy
  1. package com.xwj.testfilepath;  
  2.   
  3. import java.io.File;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6.   
  7. import android.os.Bundle;  
  8. import android.os.Environment;  
  9. import android.annotation.SuppressLint;  
  10. import android.app.Activity;  
  11. import android.widget.ArrayAdapter;  
  12. import android.widget.ListView;  
  13.   
  14. public class MainActivity extends Activity {  
  15.   
  16.     private ArrayAdapter<String> adapter;  
  17.     private ListView mShowPathLv;  
  18.   
  19.     @Override  
  20.     protected void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.activity_main);  
  23.         mShowPathLv = (ListView) findViewById(R.id.lv_show_path);  
  24.         adapter = new ArrayAdapter<String>(this,  
  25.                 android.R.layout.simple_expandable_list_item_1);  
  26.         adapter.addAll(getImagePathFromSD());  
  27.         mShowPathLv.setAdapter(adapter);  
  28.     }  
  29.   
  30.     /** 
  31.      * 从sd卡获取图片资源 
  32.      * @return 
  33.      */  
  34.     private List<String> getImagePathFromSD() {  
  35.         // 图片列表  
  36.         List<String> imagePathList = new ArrayList<String>();  
  37.         // 得到sd卡内image文件夹的路径   File.separator(/)   
  38.         String filePath = Environment.getExternalStorageDirectory().toString() + File.separator  
  39.                 + "image";  
  40.         // 得到该路径文件夹下所有的文件  
  41.         File fileAll = new File(filePath);  
  42.         File[] files = fileAll.listFiles();  
  43.         // 将所有的文件存入ArrayList中,并过滤所有图片格式的文件  
  44.         for (int i = 0; i < files.length; i++) {  
  45.             File file = files[i];  
  46.             if (checkIsImageFile(file.getPath())) {  
  47.                 imagePathList.add(file.getPath());  
  48.             }  
  49.         }  
  50.         // 返回得到的图片列表  
  51.         return imagePathList;  
  52.     }  
  53.   
  54.     /** 
  55.      * 检查扩展名,得到图片格式的文件 
  56.      * @param fName  文件名 
  57.      * @return 
  58.      */  
  59.     @SuppressLint("DefaultLocale")  
  60.     private boolean checkIsImageFile(String fName) {  
  61.         boolean isImageFile = false;  
  62.         // 获取扩展名  
  63.         String FileEnd = fName.substring(fName.lastIndexOf(".") + 1,  
  64.                 fName.length()).toLowerCase();  
  65.         if (FileEnd.equals("jpg") || FileEnd.equals("png") || FileEnd.equals("gif")  
  66.                 || FileEnd.equals("jpeg")|| FileEnd.equals("bmp") ) {  
  67.             isImageFile = true;  
  68.         } else {  
  69.             isImageFile = false;  
  70.         }  
  71.         return isImageFile;  
  72.     }  
  73.   
  74. }