【前端笔记】android中bitmap和文件的大小

原创 2016年06月01日 12:35:20

在一个项目中因为图片上传一直报错socket超时,因此想到了是不是图片过大不能上传的问题所以需要打印bitmap的尺寸和大小


           public long getBitmapsize(){

               if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {

                //据说3.1.X以下的版本不能用此方法
                 return bitmap.getByteCount();
                }
             // Pre HC-MR1
             return bitmap.getRowBytes() * bitmap.getHeight();//为了兼容老版本使用

               }


而更为常用的是获取bitmap的宽高,通过getWidth和getHeight方法。


增加对于文件大小的判断

1.适用于大文件,返回值为long

File f= new File("D:\\CentOS-6.5-x86_64-bin-DVD1.iso");  
    if (f.exists() && f.isFile()){  
       System.out.println(f.length());  
    }else{  
         System.out.println("file doesn't exist or is not a file");  
    }

2.适用于小文件,因为FileInputStream返回值为int,超过2147483647  就越界了最大只能显示1.99G

    FileInputStream fis= null;  
    try{  
        File f= new File("D:\\CentOS-6.5-x86_64-bin-DVD1.iso");  
        fis= new FileInputStream(f);  
        logger.info(fis.available());  
    }catch(Exception e){  
        logger.error(e);  
    } finally{  
        if (null!=fis){  
            try {  
                fis.close();  
            } catch (IOException e) {  
                logger.error(e);  
            }  
        }  
    } 


3.同样可以使用FileChannel

FileChannel fc= null;  
    try {  
        File f= new File("D:\\CentOS-6.5-x86_64-bin-DVD1.iso");  
        if (f.exists() && f.isFile()){  
            FileInputStream fis= new FileInputStream(f);  
            fc= fis.getChannel();  
            logger.info(fc.size());  
        }else{  
            logger.info("file doesn't exist or is not a file");  
        }  
    } catch (FileNotFoundException e) {  
        logger.error(e);  
    } catch (IOException e) {  
        logger.error(e);  
    } finally {  
        if (null!=fc)){  
            try{  
                fc.close();  
            }catch(IOException e){  
                logger.error(e);  
            }  
        }   
    } 




版权声明:本文为博主原创文章,未经博主允许不得转载。

关于获取Bitmap图片的大小的方法

关于获取Bitmap图片的大小的方法 在API
  • u011459279
  • u011459279
  • 2014年04月25日 01:06
  • 1633

android开发怎么得到Bitmap所占资源的大小

1、首先得到Bitmap对象所占资源的大小,在新的API上提供了一个方法  bitmap.getByteCount()   // from API Level 12  也就是说从SDK12才能使用...
  • wangduanqing5945
  • wangduanqing5945
  • 2013年11月28日 19:23
  • 6005

Android 计算Bitmap大小 getRowBytes和getByteCount()

今天使用LruCache写demo的时候,要获取Bitmap的大小 于是就用到了 return bitmap.getRowBytes() * bitmap.getHeight();// 获取大小并...
  • quanshuai0225
  • quanshuai0225
  • 2015年07月28日 13:44
  • 8314

Android Bitmap 大小计算

Bitmap计算三种情况1、getRowBytes:Since API Level 1 2、getByteCount:Since API Level 12 3、getAllocationByteC...
  • Soft_Po
  • Soft_Po
  • 2016年11月03日 22:18
  • 1188

Android获取bitmap图片的大小

在Android API(12)之前的版本和后来的版本是不一样:                public long getBitmapsize(){                      ...
  • linghu_java
  • linghu_java
  • 2013年05月23日 14:21
  • 41659

[Android]修改bitmap大小

public Bitmap getbitmap(Bitmap bitmap){ int width = bitmap.getWidth(); int height = ...
  • kukajenny
  • kukajenny
  • 2015年11月27日 12:27
  • 3138

Android Bitmap内存限制

在编写Android程序的时候,我们总是难免会碰到OOM的错误,那么这个错误究竟是怎么来的呢?我们先来看一下这段异常信息: 08-14 05:15:04.764: ERROR/dalvikv...
  • dong1208401589
  • dong1208401589
  • 2015年02月14日 22:24
  • 830

Android中通过代码修改bitmap的宽高.

直接调用即可: public Bitmap setImgSize(Bitmap bm, int newWidth ,int newHeight){ // 获得图片的宽高. int...
  • GXL_1899
  • GXL_1899
  • 2017年08月21日 15:02
  • 639

Android开发全程记录(七)——bitmap设置图片大小的方法

Bitmap bitmap = (Bitmap) msg.obj; int width = bitmap.getWidth(); int height = bitmap.getHeight(); ...
  • wjwj1203
  • wjwj1203
  • 2014年06月19日 16:54
  • 2888

Android使用Palette把drawable转为bitmap图像大小改变的问题

项目中要做成以下的效果,本地应用直接使用包名和颜色值遍历找对应,三方应用要去提取app的icon颜色作为背景,首先想到了Android5.0新特性相关的palette。...
  • u012453607
  • u012453607
  • 2016年01月23日 15:07
  • 1106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【前端笔记】android中bitmap和文件的大小
举报原因:
原因补充:

(最多只允许输入30个字)