我需要从服务器提供的网络网址中获取图像的尺寸(最好不加载)。这是我尝试获得此方法的方法。
public void getBitmapDimensions(String uri){
try {
URL uri1 = new URL(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(new File(uri1.toString()).getPath(), options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
Log.d("NewDimens1",imageWidth+","+imageHeight+","+options.inSampleSize);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
在浏览器中打开时,字符串url可以正常工作。但在这种情况下,imageHeight和imageWidth始终为0.
我也尝试过使用Uri而不是URL。一样。当url是基于网络而不是基于文件时,它是否需要做不同的事情?
另外,我最初使用Glide库将图片网址加载到视图中。我试图改变
Glide.with(this.getContext().getApplicationContext()).load(url).diskCacheStrategy(DiskCacheStrategy.ALL).into(this);
到
Glide.with(this.getContext().getApplicationContext()).load(url).
diskCacheStrategy(DiskCacheStrategy.ALL).
into(new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
Log.wtf("DimensionsAre",resource.getIntrinsicWidth()+","+resource.getIntrinsicHeight());
}
});
现在这确实给了我图像尺寸,但它通过使用.into(this)
上下文加载图像来破坏我提供的图像视图的原始设置。