android - 如何检索从我的图库中选择的图像的文件大小?
问题描述
我已经尝试了所有其他帖子的答案,它们似乎都返回 0.0 作为我的图像的文件大小,这是不可能的。我认为文件路径是导致它返回不正确文件大小的原因。这是我的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
imageUri = data.getData();
textViewImageAttachmentStatus.setText("File has been attached");
textViewImageAttachmentStatus.setTextColor(Color.parseColor("#008577"));
Picasso.get().load(imageUri).into(imageViewPreviewImage);
String imagePath = imageUri.getPath();
File imageFile = new File(imagePath);
long imageSize = imageFile.length() / 1024;
System.out.println(imageSize);
}
}
解决方案
更好地使用 Cursor 它非常强大,试试这个
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
assert cursor != null;
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
mediaPath1 = cursor.getString(columnIndex);
cursor.close();
File file = new File(mediaPath);
int file_size = Integer.parseInt(String.valueOf(file.length() / 1048576));
System.out.println(file_size);
推荐阅读
- swiftui - GeometryReader 计算视图的总高度
- python - 如何在 Python 中获得哈密顿谐振子的相位图?
- sql - “for json auto”和“for json path”在 SQL Server Management Studio 中出现语法错误
- excel - VBA 循环目录从每个工作簿中删除(按工作表名称)除一个之外的所有工作表
- shell - 期望脚本不适用于多个密码请求
- javascript - HTML/Javascript 文本幻灯片,其中包含无限数量的组件
- java - 在驱动程序代码中创建圆形对象时遇到错误
- php - 当我在终端中运行“php artisan migrate”代码时,我无法在 http://localhost/phpmyadmin/ 上创建表
- playframework - 使用 nginx 作为前端从akka(playframework)获取非法主机头
- android - 问:无法根据类别返回事件列表?