我的应用仅在外部内存中的图像大于400kb上的文件大小时才执行某个功能,因此我需要知道图像的大小是什么,但是此
image.getByteCount() / 1024
只是返回解码位图的大小,而不是文件大小。我还尝试使用
image_file.length() / 1024
但是此方法只是返回0 kb。无论如何是否可以在磁盘上找到文件的实际大小?
无论如何是否可以在磁盘上找到文件的实际大小?
否。主要是因为压缩可能会根据位图内容提供不同的结果。因此,实际上,您需要创建文件以弄清楚它的大小。您可以将该文件数据保存在内存中,然后在将存储器之前(或不(倾倒到文件中检查磁盘空间。
请注意,如果您需要使用大量位图或大图像,则此方法可能不起作用,这是因为有可能耗尽内存或击中内存限制的风险。尽管如此,还是值得检查。
编辑
如果图像已经是外部内存中的压缩文件,是否可以找到它?
如果您已经在磁盘上已有文件,只需在其上调用length()
(文档(。