关闭

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

标签: androidbitmap
185人阅读 评论(0) 收藏 举报
分类:

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




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15757次
    • 积分:317
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条
    文章分类