android 掃描sdcard下的圖片

來源:互聯網
上載者:User
package com.android.photostore;import java.io.File;import java.util.ArrayList;import java.util.LinkedList;import android.graphics.drawable.Drawable;import android.os.Environment;import android.widget.ImageView;public class Constant {private static LinkedList<String> extens=null;/** * 是否已經掃描 */public static boolean isScaned;/** * 全部圖片檔案夾 */public static ArrayList<ImageFolderInfo> imageFolders = new ArrayList<ImageFolderInfo>();/** * 圖片檔案夾實體 * @author wanghb * */public static class ImageFolderInfo{public String path;public int pisNum = 0;public ArrayList<String> filePathes = new ArrayList<String>();public Drawable image;}public static LinkedList<String> getExtens(){if(extens == null){extens = new LinkedList<String>();extens.add("JPEG");extens.add("JPG");extens.add("PNG");extens.add("GIF");extens.add("BMP");}return extens;}public static void scan(final UIinterface ui){if(!isScaned){isScaned = !isScaned;imageFolders.clear();//擷取儲存卡路徑final String mCardPath = Environment.getExternalStorageDirectory().getPath();new Thread(){public void run() {getFiles(mCardPath,ui);}}.start();}}private static void getFiles(String path,final UIinterface ui) {File f = new File(path);File[] files = f.listFiles();ImageFolderInfo ifi = new ImageFolderInfo();ifi.path = path;if (files != null) {for (int i = 0; i < files.length; i++) {final File ff = files[i];if (ff.isDirectory()) {getFiles(ff.getPath(),ui);} else {String fName = ff.getName();if(fName.indexOf(".")>-1){String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toUpperCase();if(getExtens().contains(end)){ifi.filePathes.add(ff.getPath());}}}}}if(!ifi.filePathes.isEmpty()){ifi.pisNum = ifi.filePathes.size();synchronized (imageFolders) {imageFolders.add(ifi);ui.updateUI();}}}//顯示實體public static class gridItemEntity{public Drawable image;public String path;public int index;public ImageView imageView;}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.