Android 滑动,可能获得图像文件大小(不是尺寸)?
我正在使用动作获取内容,并使用Glide加载选定的图像。我希望以字节为单位显示图像文件大小,但Glide是否支持获取此数据的方法Android 滑动,可能获得图像文件大小(不是尺寸)?,android,android-glide,Android,Android Glide,我正在使用动作获取内容,并使用Glide加载选定的图像。我希望以字节为单位显示图像文件大小,但Glide是否支持获取此数据的方法 我可以找到方法,但我担心如果我使用这些方法,它可能会不必要地读取同一个文件两次。(我看了一次大小,Glide再看一次得到图像)。如果图像是远程图像(用户可以从Google Drive中选择图像),这将特别糟糕。您可以使用SimpleTarget获取位图,然后您可以使用或获取字节来计算大小(kb,mb) Glide .与(上下文) .加载(“https://www.so
我可以找到方法,但我担心如果我使用这些方法,它可能会不必要地读取同一个文件两次。(我看了一次大小,Glide再看一次得到图像)。如果图像是远程图像(用户可以从Google Drive中选择图像),这将特别糟糕。您可以使用
SimpleTarget
获取位图,然后您可以使用或获取字节来计算大小(kb,mb)
Glide
.与(上下文)
.加载(“https://www.somelink.com/image.png")
.asBitmap()
.into(新的SimpleTarget(){
@凌驾
公共资源就绪(位图资源,转换您正在将url传递到Glide
,这意味着您已经有了文件
。只需从文件
对象中获取文件大小。我认为这不是不必要的读取。文件对象不读取文件。它只包含文件的属性,而不包含内容。@ADM这将是不必要的如果图像是远程图像,则非常糟糕
这只是关于操作\u获取内容
的问题。您能给我提供更多详细信息吗?链接的问题有这样的答案,但似乎文件()
需要一个JavaURI
,我所拥有的就是AndroidURI
。我已经找到了转换它的方法,但似乎你不能简单地将AndroidURI
转换成JavaURI
。
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);
}
});