从图库中选定的图像中获取图像的确切文件大小 [英] Get the exact File Size of an Image from the selected image in gallery

查看:65
本文介绍了从图库中选定的图像中获取图像的确切文件大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的文件选择器代码

This is my code for file chooser

 private void showFileChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}

然后onActivityResult()

then onActivityResult()

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {

        filePath = data.getData();
        try {
            bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), filePath);

            System.out.println(bitmap.getByteCount());

            int w = bitmap.getWidth();
            int h = bitmap.getHeight();



            if (w!= 512 || h!= 512)
            {
                txvLogoError.setText("Invalid image dimensions. Please choose another.");
            }
            else
            {
                txvLogoError.setText("");
                imbAppLogo.setPadding(10,10,10,10);
                imbAppLogo.setImageBitmap(bitmap);
            }


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我的问题是,如何获得所选图像的确切文件大小?我尝试了File.length(),但结果为0.

my question is, how can I get the exact file size of the image selected? I tried File.length() but the result is 0.

推荐答案

尝试一下.

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        int dataSize=0;
        if (requestCode == 2 && resultCode == RESULT_OK)
        {
            Uri uri  = data.getData();
            String scheme = uri.getScheme();
            System.out.println("Scheme type " + scheme);
            if(scheme.equals(ContentResolver.SCHEME_CONTENT))
            {
                try {
                    InputStream fileInputStream=getApplicationContext().getContentResolver().openInputStream(uri);
                    dataSize = fileInputStream.available();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("File size in bytes"+dataSize);

            }
            else if(scheme.equals(ContentResolver.SCHEME_FILE))
            {
                String path = uri.getPath();
                try {
                    f = new File(path);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("File size in bytes"+f.length());
            }

        }
    }

这篇关于从图库中选定的图像中获取图像的确切文件大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆