Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 滑动,可能获得图像文件大小(不是尺寸)?_Android_Android Glide - Fatal编程技术网

Android 滑动,可能获得图像文件大小(不是尺寸)?

Android 滑动,可能获得图像文件大小(不是尺寸)?,android,android-glide,Android,Android Glide,我正在使用动作获取内容,并使用Glide加载选定的图像。我希望以字节为单位显示图像文件大小,但Glide是否支持获取此数据的方法 我可以找到方法,但我担心如果我使用这些方法,它可能会不必要地读取同一个文件两次。(我看了一次大小,Glide再看一次得到图像)。如果图像是远程图像(用户可以从Google Drive中选择图像),这将特别糟糕。您可以使用SimpleTarget获取位图,然后您可以使用或获取字节来计算大小(kb,mb) Glide .与(上下文) .加载(“https://www.so

我正在使用动作获取内容,并使用Glide加载选定的图像。我希望以字节为单位显示图像文件大小,但Glide是否支持获取此数据的方法


我可以找到方法,但我担心如果我使用这些方法,它可能会不必要地读取同一个文件两次。(我看了一次大小,Glide再看一次得到图像)。如果图像是远程图像(用户可以从Google Drive中选择图像),这将特别糟糕。

您可以使用
SimpleTarget
获取位图,然后您可以使用或获取字节来计算大小(kb,mb)

Glide
.与(上下文)
.加载(“https://www.somelink.com/image.png")
.asBitmap()
.into(新的SimpleTarget(){
@凌驾

公共资源就绪(位图资源,转换您正在将url传递到
Glide
,这意味着您已经有了
文件
。只需从
文件
对象中获取文件大小。我认为这不是不必要的读取。文件对象不读取文件。它只包含文件的属性,而不包含内容。@ADM
这将是不必要的如果图像是远程图像,则非常糟糕
这只是关于
操作\u获取内容
的问题。您能给我提供更多详细信息吗?链接的问题有这样的答案,但似乎
文件()
需要一个Java
URI
,我所拥有的就是Android
URI
。我已经找到了转换它的方法,但似乎你不能简单地将Android
URI
转换成Java
URI
Glide
    .with(context)
    .load("https://www.somelink.com/image.png")
    .asBitmap()
    .into(new SimpleTarget<Bitmap>() {
         @Override
        public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {            
            int byteCount = Integer.MIN_VALUE;
            if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT){
                 byteCount = resource.getByteCount();
            }else{
                byteCount = resource.getAllocationByteCount();    
            }
            int sizeInKB = byteCount / 1024;
            int sizeInMB = sizeInKB / 1024; 
            image.setImageBitmap(resource);
        }
    });