如何从android中的png图像的网络URL获取图像尺寸

时间:2017-01-11 08:19:38

标签: android android-glide android-bitmap image-size

我需要从服务器提供的网络网址中获取图像的尺寸(最好不加载)。这是我尝试获得此方法的方法。

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)上下文加载图像来破坏我提供的图像视图的原始设置。

0 个答案:

没有答案