/** * @param origPath 源图片文件路径 * @param width 缩略图设定宽度 * @param height 缩略图设定高度 * @return 返回缩略图,失败返回null */ public Bitmap getImageThumbFromMK(String origPath, int width, int height) { // 产生缩略图,并把该文件存到指定目录下,更新数据库中图片信息 Bitmap thumbnail = null; Log.d(TAG, origPath + ":make thumbnail and insert message in database"); ThumbnailCreator mCreator = new ThumbnailCreator(width, height); thumbnail = mCreator.createThumbnail(origPath); if (thumbnail == null) { return null; } String name = null; try { name = origPath.substring(origPath.lastIndexOf("/") + 1, origPath.lastIndexOf(".")); } catch (IndexOutOfBoundsException e) { e.printStackTrace(); return null; } try { File f = new File(imageDB.getAppDir() + "/" + name); FileOutputStream fOut = null; fOut = new FileOutputStream(f); thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, fOut); fOut.flush(); fOut.close(); imageDB.insert(origPath, f.getPath()); } catch (Exception e) { // TODO Auto-generated catch block Log.d(TAG, "create temp file false"); e.printStackTrace(); } return thumbnail; }
private View getView_tree(int position, View convertView, ViewGroup parent) { ViewHolder holder; int num_items = 0; String temp = mFileMang.getCurrentDir(); File file = new File(temp + "/" + mDataSource.get(position)); String[] list = file.list(); if (list != null) num_items = list.length; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.tablerow, parent, false); holder = new ViewHolder(); holder.topView = (TextView) convertView.findViewById(R.id.top_view); holder.bottomView = (TextView) convertView.findViewById(R.id.bottom_view); holder.icon = (ImageView) convertView.findViewById(R.id.row_image); holder.mSelect = (ImageView) convertView.findViewById(R.id.multiselect_icon); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } /* This will check if the thumbnail cache needs to be cleared by checking * if the user has changed directories. This way the cache wont show * a wrong thumbnail image for the new image file */ if (!dir_name.equals(temp) && thumbnail_flag) { thumbnail.clearBitmapCache(); dir_name = temp; } if (positions != null && positions.contains(position)) holder.mSelect.setVisibility(ImageView.VISIBLE); else holder.mSelect.setVisibility(ImageView.GONE); holder.topView.setTextColor(mColor); holder.bottomView.setTextColor(mColor); if (file != null && file.isFile()) { String ext = file.toString(); String sub_ext = ext.substring(ext.lastIndexOf(".") + 1); /* This series of else if statements will determine which * icon is displayed */ if (TypeFilter.getInstance().isPdfFile(sub_ext)) { holder.icon.setImageResource(R.drawable.pdf); } else if (TypeFilter.getInstance().isMusicFile(sub_ext)) { holder.icon.setImageResource(R.drawable.music); } else if (TypeFilter.getInstance().isPictureFile(sub_ext)) { if (thumbnail_flag && file.length() != 0) { Bitmap thumb = thumbnail.hasBitmapCached(position); boolean isJPG = false; if (sub_ext.equalsIgnoreCase("jpeg") || sub_ext.equalsIgnoreCase("jpg")) { isJPG = true; } if (thumb == null) { holder.icon.setImageResource(R.drawable.image); final Handler mHandler = new Handler(); thumbnail.setBitmapToImageView( file.getPath(), mHandler, holder.icon, isJPG, position); } else { holder.icon.setImageBitmap(thumb); } } else { holder.icon.setImageResource(R.drawable.image); } } else if (TypeFilter.getInstance().isZipFile(sub_ext) || TypeFilter.getInstance().isGZipFile(sub_ext) || TypeFilter.getInstance().isRarFile(sub_ext)) { holder.icon.setImageResource(R.drawable.zip); } else if (TypeFilter.getInstance().isMovieFile(sub_ext)) { holder.icon.setImageResource(R.drawable.movies); } else if (TypeFilter.getInstance().isWordFile(sub_ext)) { holder.icon.setImageResource(R.drawable.word); } else if (TypeFilter.getInstance().isExcelFile(sub_ext)) { holder.icon.setImageResource(R.drawable.excel); } else if (TypeFilter.getInstance().isPptFile(sub_ext)) { holder.icon.setImageResource(R.drawable.ppt); } else if (TypeFilter.getInstance().isHtml32File(sub_ext)) { holder.icon.setImageResource(R.drawable.html32); } else if (TypeFilter.getInstance().isXml32File(sub_ext)) { holder.icon.setImageResource(R.drawable.xml32); } else if (TypeFilter.getInstance().isConfig32File(sub_ext)) { holder.icon.setImageResource(R.drawable.config32); } else if (TypeFilter.getInstance().isApkFile(sub_ext)) { holder.icon.setImageDrawable(getApkIcon(ext, mContext)); } else if (TypeFilter.getInstance().isJarFile(sub_ext)) { holder.icon.setImageResource(R.drawable.jar32); } else if (TypeFilter.getInstance().isTxtFile(sub_ext)) { holder.icon.setImageResource(R.drawable.text); } else if (TypeFilter.getInstance().isPadFile(sub_ext)) { holder.icon.setImageResource(R.drawable.text); } else { holder.icon.setImageResource(R.drawable.config32); } } else if (file != null && file.isDirectory()) { holder.icon.setImageResource(R.drawable.folder); } else { holder.icon.setImageResource(R.drawable.text); } String permission = getFilePermissions(file); if (file.isFile()) { double size = file.length(); if (size > GB) display_size = String.format("%.2f Gb ", (double) size / GB); else if (size < GB && size > MG) display_size = String.format("%.2f Mb ", (double) size / MG); else if (size < MG && size > KB) display_size = String.format("%.2f Kb ", (double) size / KB); else display_size = String.format("%.2f bytes ", (double) size); if (file.isHidden()) holder.bottomView.setText("(hidden) | " + display_size + " | " + permission); else holder.bottomView.setText(display_size + " | " + permission); } else { if (file.isHidden()) holder.bottomView.setText("(hidden) | " + num_items + " items | " + permission); else holder.bottomView.setText(num_items + " items | " + permission); } holder.topView.setText(file.getName()); return convertView; }
private View getView_catalog(int position, View convertView, ViewGroup parent) { ViewHolder holder; File file = new File(mDataSource.get(position)); if (convertView == null) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.tablerow, parent, false); holder = new ViewHolder(); holder.topView = (TextView) convertView.findViewById(R.id.top_view); holder.bottomView = (TextView) convertView.findViewById(R.id.bottom_view); holder.icon = (ImageView) convertView.findViewById(R.id.row_image); holder.mSelect = (ImageView) convertView.findViewById(R.id.multiselect_icon); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } if (positions != null && positions.contains(position)) holder.mSelect.setVisibility(ImageView.VISIBLE); else holder.mSelect.setVisibility(ImageView.GONE); holder.topView.setTextColor(mColor); holder.bottomView.setTextColor(mColor); if (file != null && file.isFile()) { String ext = file.toString(); String sub_ext = ext.substring(ext.lastIndexOf(".") + 1); /* This series of else if statements will determine which * icon is displayed */ if (TypeFilter.getInstance().isPdfFile(sub_ext)) { holder.icon.setImageResource(R.drawable.pdf); } else if (TypeFilter.getInstance().isMusicFile(sub_ext)) { holder.icon.setImageResource(R.drawable.music); } else if (TypeFilter.getInstance().isPictureFile(sub_ext)) { if (thumbnail_flag && file.length() != 0) { Bitmap thumb = thumbnail.hasBitmapCached(position); if (thumb == null) { holder.icon.setImageResource(R.drawable.image); final Handler mHandler = new Handler(); boolean isJPG = false; if (sub_ext.equalsIgnoreCase("jpeg") || sub_ext.equalsIgnoreCase("jpg")) { isJPG = true; } thumbnail.setBitmapToImageView( file.getPath(), mHandler, holder.icon, isJPG, position); } else { holder.icon.setImageBitmap(thumb); } } else { holder.icon.setImageResource(R.drawable.image); } } else if (TypeFilter.getInstance().isMovieFile(sub_ext)) { holder.icon.setImageResource(R.drawable.movies); } else if (TypeFilter.getInstance().isTxtFile(sub_ext)) { holder.icon.setImageResource(R.drawable.text); } else if (TypeFilter.getInstance().isWordFile(sub_ext)) { holder.icon.setImageResource(R.drawable.word); } else if (TypeFilter.getInstance().isExcelFile(sub_ext)) { holder.icon.setImageResource(R.drawable.excel); } else if (TypeFilter.getInstance().isPptFile(sub_ext)) { holder.icon.setImageResource(R.drawable.ppt); } else if (TypeFilter.getInstance().isApkFile(sub_ext)) { holder.icon.setImageDrawable(getApkIcon(ext, mContext)); } else { holder.icon.setImageResource(R.drawable.text); } } String permission = getFilePermissions(file); if (file.isFile()) { double size = file.length(); if (size > GB) display_size = String.format("%.2f Gb ", (double) size / GB); else if (size < GB && size > MG) display_size = String.format("%.2f Mb ", (double) size / MG); else if (size < MG && size > KB) display_size = String.format("%.2f Kb ", (double) size / KB); else display_size = String.format("%.2f bytes ", (double) size); if (file.isHidden()) holder.bottomView.setText("(hidden) | " + display_size + " | " + permission); else holder.bottomView.setText(display_size + " | " + permission); } holder.topView.setText(file.getName()); return convertView; }
public void clearThumbnail() { if (thumbnail_flag) { thumbnail.clearBitmapCache(); } }