Android获取图片缓存及清除
封装一个类
package com.jianong.xmtt.util;import android.content.Context;
import android.os.Environment;import java.io.File;
import java.math.BigDecimal;/*** Created by hgl on 2016/6/23.*/
public class DataCleanManager {/*** 获取缓存大小* @param context* @return* @throws Exception*/public static String getTotalCacheSize(Context context) throws Exception {long cacheSize = getFolderSize(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {cacheSize += getFolderSize(context.getExternalCacheDir());}return getFormatSize(cacheSize);}/*** 清除缓存* @param context*/public static void clearAllCache(Context context) {deleteDir(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {deleteDir(context.getExternalCacheDir());}}private static boolean deleteDir(File dir) {if (dir != null && dir.isDirectory()) {String[] children = dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}return dir.delete();}// 获取文件大小//Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据//Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据public static long getFolderSize(File file) throws Exception {long size = 0;try {File[] fileList = file.listFiles();for (int i = 0; i < fileList.length; i++) {// 如果下面还有文件if (fileList[i].isDirectory()) {size = size + getFolderSize(fileList[i]);} else {size = size + fileList[i].length();}}} catch (Exception e) {e.printStackTrace();}return size;}/*** 格式化单位* @param size* @return*/public static String getFormatSize(double size) {double kiloByte = size / 1024;if (kiloByte < 1) {
// return size + "Byte";return "0K";}double megaByte = kiloByte / 1024;if (megaByte < 1) {BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "K";}double gigaByte = megaByte / 1024;if (gigaByte < 1) {BigDecimal result2 = new BigDecimal(Double.toString(megaByte));return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "M";}double teraBytes = gigaByte / 1024;if (teraBytes < 1) {BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";}BigDecimal result4 = new BigDecimal(teraBytes);return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()+ "TB";}
}
然后在你相应的类里调用该类里的对应方法就可以了!!!
Android获取图片缓存及清除相关推荐
- android 获取图片bitmap对象,Android中Glide获取图片Path、Bitmap用法详解
脚本之家在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path.Bitmap用法,以及实现的代码分析. 1. 获取Bitmap ...
- android+文件大小格式化,android 获取本地缓存文件大小,删除功能
博客地址:http://blog.csdn.net/wwj_748/article/details/42737607 前言 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应 ...
- 【MDCC 2015】开源选型之Android三大图片缓存原理、特性对比
from: http://www.csdn.net/article/2015-10-21/2825984 [CSDN现场报道]10月14日-16日," 2015移动开发者大会 · 中国&qu ...
- Android之图片缓存管理
如果每次加载同一张图片都要从网络获取,那代价实在太大了.所以同一张图片只要从网络获取一次就够了,然后在本地缓存起来,之后加载同一张图片时就从缓存中加载就可以了.从内存缓存读取图片是最快的,但是因为内存 ...
- android获取图片缩略图,Android系获取图片和视频的缩略图
获取手机里视频缩略图: public static Bitmap getVideoThumbnail(ContentResolver cr,Uri uri) { Bitmap bitmap = nul ...
- android 获取图片
Android获取手机或者内存卡里面的图片有两种方式 1.这是通过一种action Intent intent=new Intent();intent.setAction(Intent.ACTION_ ...
- php拍照从手机相册中选择,Android获取图片:拍照和从相册中选择
概述 在Android开发中获取图片主要包括如下两种方式: 打开相机拍照 从图库中选择图片 一.打开相机拍照 打开相机拍照主要包括如下几个部分: 权限申请 打开摄像头 拍照后传回数据处理 1. 权限申 ...
- Android的图片缓存ImageCache(转)
为什么要做缓存? 在UI界面加载一张图片时很简单,然而如果需要加载多张较大的图像,事情就会变得更加复杂.在许多情况下(如ListView.GridView或ViewPager等的组件),屏 ...
- android 图片拍照,Android获取图片拍照时间
为什么写这篇文章是因为今早有个需求需要获取图片拍照时的时间进行一些处理,有些方法参数名忘记了,所以谷歌百度了一下,Android 图片 时间,Android 图片 拍照 时间,这几个关键字居然无法搜索 ...
最新文章
- 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击...
- java用法_Java 习惯用法总结
- java反射的编译过程_Java反射机制小结和实际操作
- linux 分区 备份软件下载,硬盘分区备份(Image For Windows)
- Linux中的存储设备管理
- jQuery.理解选取更新范围
- (25)二分频verilog与VHDL编码(学无止境)
- 从一个实例(整数幂指数)进行算法时间复杂度的分析
- oracle kill所有plsql developer进程
- 10个不太为人所知的,但实用的PHP函数(转)
- 团队文化中的害群之马
- C++中函数如何返回数组
- CSS 7阶层叠水平
- 黑马程序员_毕向东_Java基础视频教程第01天_20151010(六)
- 空气螺旋桨,让水下动物不再受伤害
- NLP(自然语言处理)基本入门之分词操作
- PS如何制作炫酷的字体,有什么好的教程吗
- 【MQ-3 酒精检测器与 Arduino检测酒精】
- Allegro PCB设计中Etch层走线阻焊开窗的一种方法
- 阅读论文《Deep Bilateral Learning for Real-Time Image Enhancement》