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

在一个项目中因为图片上传一直报错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);  
            }  
        }   
    } 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值