android 计算图片大小
public class FileSizeUtil {public static final int SIZETYPE_B = 1;// 获取文件大小单位为B的double值public static final int SIZETYPE_KB = 2;// 获取文件大小单位为KB的double值public static final int SIZETYPE_MB = 3;// 获取文件大小单位为MB的double值public static final int SIZETYPE_GB = 4;// 获取文件大小单位为GB的double值/*** 获取文件指定文件的指定单位的大小** @param filePath* 文件路径* @param sizeType* 获取大小的类型1为B、2为KB、3为MB、4为GB* @return double值的大小*/public static String getFileOrFilesSize(String filePath) {File file = new File(filePath);long blockSize = 0;try {if (file.isDirectory()) {blockSize = getFileSizes(file);} else {blockSize = getFileSize(file);}} catch (Exception e) {e.printStackTrace();Log.e("获取文件大小", "获取失败!");}return formatFileSize(blockSize);}/*** 调用此方法自动计算指定文件或指定文件夹的大小** @param filePath* 文件路径* @return 计算好的带B、KB、MB、GB的字符串*/public static String getAutoFileOrFilesSize(String filePath) {File file = new File(filePath);long blockSize = 0;try {if (file.isDirectory()) {blockSize = getFileSizes(file);} else {blockSize = getFileSize(file);}} catch (Exception e) {e.printStackTrace();Log.e("获取文件大小", "获取失败!");}return formatFileSize(blockSize);}/*** 获取指定文件大小** @param* @return* @throws Exception*/private static long getFileSize(File file) throws Exception {long size = 0;if (file.exists()) {FileInputStream fis = null;fis = new FileInputStream(file);size = fis.available();} else {file.createNewFile();Log.e("获取文件大小", "文件不存在!");}return size;}/*** 获取指定文件夹** @param f* @return* @throws Exception*/private static long getFileSizes(File f) throws Exception {long size = 0;File flist[] = f.listFiles();for (int i = 0; i < flist.length; i++) {if (flist[i].isDirectory()) {size = size + getFileSizes(flist[i]);} else {size = size + getFileSize(flist[i]);}}return size;}/*** 转换文件大小** @param fileS* @return*/private static String FormetFileSize(long fileS) {DecimalFormat df = new DecimalFormat("#.00");String fileSizeString = "";String wrongSize = "0B";if (fileS == 0) {return wrongSize;}if (fileS < 1024) {fileSizeString = df.format((double) fileS) + "B";} else if (fileS < 1048576) {fileSizeString = df.format((double) fileS / 1024) + "KB";} else if (fileS < 1073741824) {fileSizeString = df.format((double) fileS / 1048576) + "MB";} else {fileSizeString = df.format((double) fileS / 1073741824) + "GB";}return fileSizeString;}/*** 转换文件大小,指定转换的类型** @param fileS* @return*/private static String formatFileSize(long fileS){DecimalFormat df = new DecimalFormat("#.00");String fileSizeString = "";String wrongSize="0B";if(fileS==0){return wrongSize;}if (fileS < 1024){fileSizeString = df.format((double) fileS) + "B";}else if (fileS < 1048576){fileSizeString = df.format((double) fileS / 1024) + "KB";}else if (fileS < 1073741824){fileSizeString = df.format((double) fileS / 1048576) + "MB";}else{fileSizeString = df.format((double) fileS / 1073741824) + "GB";}if (fileS < 1048576*2) { // 限制图片大小不能大于2MBreturn fileSizeString;}return null;}
}
android 计算图片大小相关推荐
- php怎么统计图片的大小,PHP按照比例计算图片大小
/** * 按照比例计算图片大小 */ function chang_image_size($img_w, $img_h, $max_w, $max_h) { $CI =& get_insta ...
- 微信小程序 动态计算图片大小
微信小程序 动态计算图片大小 方法一 使用图片的mode属性 手动计算 给图片绑定事件bind:load,回调函数名为onImgLoad 编写回调函数,width为340是图片容器的宽度 method ...
- Android—Bitmap图片大小计算、压缩与三级缓存
Bitmap对象占用内存大小: bitmap.getByteCount() 图片所占内存大小计算方式:图片长度 x 图片宽度 x 一个像素点占用的字节数. Android Bitmap使用的三种颜色格 ...
- Android文件夹占用空间分析,关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析...
从上一篇文章<Android屏幕适配全攻略>写完之后,经常会有朋友问我这个问题:"能不能一个App只提供一套切图适应所有的分辨率呢?"我觉得有必要写一篇文章来研究一下这 ...
- 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
从上一篇文章<Android屏幕适配全攻略>写完之后,经常会有朋友问我这个问题:"能不能一个App只提供一套切图适应所有的分辨率呢?"我觉得有必要写一篇文章来研究一下这 ...
- Android 保持图片大小,扩大button点击区域
button图片很小时,点击区域会很小,解决方法: 1.使用ImageButton代替Button.使用src加载图片,图片会保持大小加载.而用background加载会铺满按钮大小.然后此时可用pa ...
- 通过图片像素计算图片大小的方法
图像大小在相机下通常表现为"像素",例如1200万像素的相机,一张图片是3000*4000: 而保存成bmp的无压缩格式图片时,存到本地上我们更加习惯的是以"内存&quo ...
- android 裁剪图片大小 控制图片尺寸
用BitmapFactory获取适合屏幕大小的图片 和自带的图片裁剪工具 package com.lin.image;import android.app.Activity; import andro ...
- android drawable 图片大小,不同的drawable文件夹下图片加载到内存后图片尺寸大小的分析...
先说结论: 不同drawable文件下图片在同一手机图片尺寸是不同的 同一个drawable文件夹下的图片在不同分辨率的手机图片尺寸是不同的 先聊下DP 要在密度不同的屏幕上保留界面的可见尺寸,您必须 ...
最新文章
- C#控制远程计算机的服务
- linux用户和组、权限常用命令
- 使用JAVA来获得本日,本周,本月,本年的时间信息
- 移动项目工作笔记0001---使用uni-app开发移动端应用
- iframe弹出层中关闭包含iframe的div(子页面调用父页面js函数)
- oschina mysql limit_【MySQL】LIMIT 的用法
- python取非_Python:取非矩形区域的GLCM
- eclipse删除mysql数据库_在Eclipse中测试MySQL-JDBC(4)删除数据库中的数据【D】
- 多尺度地理加权回归(MGWR),地理加权回归(GWR),最小二乘法(OLS)回归模型的对比分析
- 【终终极版】linux(Ubuntu)下wineQQ的安装办法
- 研发岗和产品岗的时间管理策略总结-大局观概述
- 利用 nslookup 解析 DNS 记录
- GFS 区域风场解析问题
- MinIO入门-02 SpringBoot 整合MinIO并实现文件上传
- cmdy5(cmdy5庆余年)
- 简单win32程序创建控件
- [总结] 半监督学习方法: 协同训练类协同训练(Co-training)
- 近视也可以用计算机来算,近视眼度数怎么算的 5个方法教你掌握
- 什么是8K视频技术!8K视频测试解决方案
- 详解sd协议以及裸机和u-boot中的sd卡驱动(2)