Androidの操作アルバム

6480 ワード

携帯電話の画像の絶対パスを取得し、各フォルダの下のパスを区別します.
画像の絶対パスを格納するフォルダの名前と絶対パスを格納するListエンティティクラスは以下の通りです.
 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class ImagePath {
 5     private String pakagePath;
 6     private List<String> listPth = new ArrayList<String>();
 7     
 8     
 9     public String getPakagePath() {
10         return pakagePath;
11     }
12     public void setPakagePath(String pakagePath) {
13         this.pakagePath = pakagePath;
14     }
15     public List<String> getListPth() {
16         return listPth;
17     }
18     public void setListPth(List<String> listPth) {
19         this.listPth = listPth;
20     }
21     
22 }

携帯電話の画像の絶対パスをパッケージ名で区切る:
 1     private ContentResolver contentResolver;
 2     private Button button;
 3     private Uri uri;
 4     private List<ImagePath> imagePaths;
 5 private List<ImagePath> getImgPath() {
 6         imagePaths = new ArrayList<ImagePath>();
 7         contentResolver = this.getContentResolver();
 8         uri = Media.EXTERNAL_CONTENT_URI;
 9         Cursor cursor = contentResolver.query(uri, null, null, null, null);
10         Set<String> set = new TreeSet<String>();
11         List<String> lsPsth = new ArrayList<String>();
12         while (cursor.moveToNext()) {
13             //      
14             String path = cursor.getString(cursor.getColumnIndex(Media.DATA));
15             //        list 
16             lsPsth.add(path);
17             //    
18             String pakageName = cursor.getString(cursor.getColumnIndex(Media.BUCKET_DISPLAY_NAME));
19             //      set 
20             set.add(pakageName);
21         }
22         //set     
23         String[] str =set.toArray(new String[set.size()]);
24         //         
25         for (int i = 0; i < str.length; i++) {
26             //    ImagePath  ,               (    )
27             ImagePath imagePath = new ImagePath();
28             //    ImagePath  ,               (     )
29             List<String> listpath = new ArrayList<String>();
30             // str            imagePath   
31             imagePath.setPakagePath(str[i]);
32             //  lsPsth        
33             for (int k = 0; k < lsPsth.size(); k++) {
34                 //  lsPathget(k)           str[i]        
35                 if(getPakageNameByPath(lsPsth.get(k)).equals(str[i])){
36                     //     listpath 
37                     listpath.add(lsPsth.get(k));
38                 }
39             }
40             //                   imagePath   
41             imagePath.setListPth(listpath);
42             //      imagePaths   
43             imagePaths.add(imagePath);
44         }
45         return imagePaths;
46     }

 1     /**
 2      *               
 3      * @param path
 4      * @return
 5      */
 6     public String getPakageNameByPath(String path){
 7         String pkgName = null;
 8         if(path.length()>0){
 9             String[] str = path.split("/");
10             pkgName = str[str.length-2];
11         }
12         return pkgName;
13     }
14     

 
未完....