android 扫描sdcard下的图片

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值