保存图片至SD卡,获取SD卡图片,判断sdcard图片是存在,计算sdcard上的剩余空间
2015-03-24 19:42
381 查看
/*** * 保存图片至SD卡 * * @param bm * @param url * @param quantity */ private static int FREE_SD_SPACE_NEEDED_TO_CACHE = 1; private static int MB = 1024 * 1024; public final static String DIR = "/sdcard/hypers"; public static void saveBmpToSd(Bitmap bm, String url, int quantity) { // 判断sdcard上的空间 if (FREE_SD_SPACE_NEEDED_TO_CACHE > freeSpaceOnSd()) { return; } if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) return; String filename = url; // 目录不存在就创建 File dirPath = new File(DIR); if (!dirPath.exists()) { dirPath.mkdirs(); } File file = new File(DIR + "/" + filename); try { file.createNewFile(); OutputStream outStream = new FileOutputStream(file); bm.compress(Bitmap.CompressFormat.PNG, quantity, outStream); outStream.flush(); outStream.close(); } catch (FileNotFoundException e) { } catch (IOException e) { e.printStackTrace(); } } /*** * 获取SD卡图片 * * @param url * @param quantity * @return */ public static Bitmap GetBitmap(String url, int quantity) { InputStream inputStream = null; String filename = ""; Bitmap map = null; URL url_Image = null; String LOCALURL = ""; if (url == null) return null; try { filename = url; } catch (Exception err) { } LOCALURL = URLEncoder.encode(filename); if (Exist(DIR + "/" + LOCALURL)) { map = BitmapFactory.decodeFile(DIR + "/" + LOCALURL); } else { try { url_Image = new URL(url); inputStream = url_Image.openStream(); map = BitmapFactory.decodeStream(inputStream); // url = URLEncoder.encode(url, "UTF-8"); if (map != null) { saveBmpToSd(map, LOCALURL, quantity); } inputStream.close(); } catch (Exception e) { e.printStackTrace(); return null; } } return map; } /*** * 判断图片是存在 * * @param url * @return */ public static boolean Exist(String url) { File file = new File(DIR + url); return file.exists(); } /** * 计算sdcard上的剩余空间 * @return */ private static int freeSpaceOnSd() { StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); double sdFreeMB = ((double) stat.getAvailableBlocks() * (double) stat.getBlockSize()) / MB; return (int) sdFreeMB; }
相关文章推荐
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android 获取系统或SDCARD剩余空间信息
- android中跳转相册,相机获取图片后截取图片并保存SDCARD
- android代码中判断SDcard是否存在,剩余内存
- 判断是否有SDCard存在并获取目录
- Android 获取系统或SDCARD剩余空间信息
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- 【转】Android 获取系统或SDCARD剩余空间信息
- 从网络上获取图片并保存在sdCard上
- 获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android 获取系统或SDCARD剩余空间信息(转)
- 判断sdcard剩余空间
- Android 获取系统或SDCARD剩余空间信息
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- 计算sdcard上的剩余空间
- 从网络获取图片保存到sdcard,以及加载为bitmap显示到ImageView