如何在Android中获取图像的大小?

Ahm*_*med 7 android image image-size

我能够得到图像的高度和宽度.但有没有一种方法来检索手机中存储的图像的大小(以字节或kb或mb为单位)?

Ahm*_*med 21

谢谢您的回答.这就是我最终解决它的方式:

 Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), 
            R.drawable.ic_launcher);


     Bitmap bitmap = bitmapOrg;
     ByteArrayOutputStream stream = new ByteArrayOutputStream();   
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);   
     byte[] imageInByte = stream.toByteArray(); 
     long lengthbmp = imageInByte.length; 
Run Code Online (Sandbox Code Playgroud)

感谢您的时间和答案:)

  • 古恩回答。lengthbmp 以字节为单位。lengthbmp/1024.0 的单位是 KB。lengthbmp/1024.0/1024.0 的单位为 MB。 (2认同)

DRi*_*FTy 11

您只需要创建一个新File对象,例如......

String filepath = Environment.getExternalStorageDirectory() + "/file.png";
File file = new File(filepath);
long length = file.length();
Run Code Online (Sandbox Code Playgroud)

  • 这给出了文件的大小,而不是图像. (4认同)

Mik*_*e D 8

假设你在谈论一个位图(而不是一个ImageView),有一个方法Bitmap.getByteCount().


Aks*_*hay 6

 File file = new File("/sdcard/imageName.jpeg");
 long length = file.length();
 length = length/1024;
 System.out.println("File Path : " + file.getPath() + ", File size : " + length +" KB");
Run Code Online (Sandbox Code Playgroud)