gpt4 book ai didi

android - 以编程方式获取从图库中选择的图像的大小(以 kb 或 mb 为单位)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:04:34 24 4
gpt4 key购买 nike

我正在从图库中选择一张图片。我想以编程方式确定图片的大小(以 kb 或 mb 为单位)。这是我写的:

public String calculateFileSize(Uri filepath)
{
//String filepathstr=filepath.toString();
File file = new File(filepath.getPath());

// Get length of file in bytes
long fileSizeInBytes = file.length();
// Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
long fileSizeInKB = fileSizeInBytes / 1024;
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
long fileSizeInMB = fileSizeInKB / 1024;

String calString=Long.toString(fileSizeInMB);
return calString;
}

从图库中选择时图像的 uri 非常完美。但是 fileSizeInBytes 的值为零。我在选择图像后在 onActivityResult 上调用此方法来自画廊。我之前在这里看到了几个相同的问题。但没有一个对我有用。有什么解决办法吗?

最佳答案

改变

public String calculateFileSize(Uri filepath)
{
//String filepathstr=filepath.toString();
File file = new File(filepath.getPath());

long fileSizeInKB = fileSizeInBytes / 1024;
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
long fileSizeInMB = fileSizeInKB / 1024;

String calString=Long.toString(fileSizeInMB);

public String calculateFileSize(String filepath)
{
//String filepathstr=filepath.toString();
File file = new File(filepath);

float fileSizeInKB = fileSizeInBytes / 1024;
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)
float fileSizeInMB = fileSizeInKB / 1024;

String calString=Float.toString(fileSizeInMB);

当您使用 long 时,它会截断 之后的所有数字。 因此,如果您的大小小于 1MB,您将得到 0。

所以使用 float 代替 long

关于android - 以编程方式获取从图库中选择的图像的大小(以 kb 或 mb 为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24864257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com