@Override public void onBindViewHolder(FolderViewHolder holder, int position) { final Floder item = mDirPaths.get(position); loader.displayImage("file://" + item.getFirstImagePath(), holder.iv_dir, options); // // hanks.com.mylibrary.util.ImageLoader.getInstance().loadImage(item.getFirstImagePath(),holder.iv_dir); holder.tv_dirname.setText(item.name + " (" + item.images.size() + "张) "); holder.ll_root.setSelected(currentImageFolder == item); holder.itemView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { resetDirList(item); } }); }
/** 得到缩略图 */ private void getThumbnail() { /** 临时的辅助类,用于防止同一个文件夹的多次扫描 */ HashMap<String, Integer> tmpDir = new HashMap<String, Integer>(); Cursor mCursor = getContentResolver() .query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {MediaStore.Images.ImageColumns.DATA}, "", null, MediaStore.MediaColumns.DATE_ADDED + " DESC"); Log.e("TAG", mCursor.getCount() + ""); if (mCursor.moveToFirst()) { do { // 获取图片的路径 String path = mCursor.getString(0); Log.e("TAG", path); imageAll.images.add(new ImageItem(path)); // 获取该图片的父路径名 File parentFile = new File(path).getParentFile(); if (parentFile == null) { continue; } Floder imageFloder = null; String dirPath = parentFile.getAbsolutePath(); if (!tmpDir.containsKey(dirPath)) { // 初始化imageFloder imageFloder = new Floder(); imageFloder.setDir(dirPath); imageFloder.setFirstImagePath(path); mDirPaths.add(imageFloder); Log.d("zyh", dirPath + "," + path); tmpDir.put(dirPath, mDirPaths.indexOf(imageFloder)); } else { imageFloder = mDirPaths.get(tmpDir.get(dirPath)); } imageFloder.images.add(new ImageItem(path)); } while (mCursor.moveToNext()); } mCursor.close(); for (int i = 0; i < mDirPaths.size(); i++) { Floder f = mDirPaths.get(i); Log.d("zyh", i + "-----" + f.getName() + "---" + f.images.size()); } tmpDir = null; }
private void initViews() { loader = ImageLoader.getInstance(); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.default_image) .showImageForEmptyUri(R.drawable.default_image) .showImageOnFail(R.drawable.default_image) .cacheInMemory(true) .cacheOnDisk(true) .considerExifParams(true) .imageScaleType(ImageScaleType.EXACTLY) .bitmapConfig(Bitmap.Config.RGB_565) .build(); imageAll = new Floder(); imageAll.setDir("/所有图片"); currentImageFolder = imageAll; mDirPaths.add(imageAll); getThumbnail(); }