如何从网络URL获取图像宽度和高度

时间:2016-06-10 07:37:59

标签: android imageview

我正在开发一个Android应用程序,并在其中使用REST API。我从服务器接收图像网址,我想根据图像的原始高度使用图像网址显示这些图像。

如何使用网络图片网址获取图片的宽度和高度。我已经尝试从字符串url获取位图但是为此我想在后台线程中执行此操作,这导致图像加载非常慢。

有什么办法可以从图片网址获取图片的宽度和高度,并可以根据宽度和高度在imageview中显示图片。

如果有人知道,请帮助我。

非常感谢先进。

2 个答案:

答案 0 :(得分:4)

URL url = new URL("url/image.jpg");
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());

表示宽度:

bmp.getWidth(); 

高度:

bmp.getHeight(); 

用于在imageview中设置:

ImageView.setImageBitmap(bmp);

进一步参考:

https://developer.android.com/reference/android/graphics/Bitmap.html#getHeight%28%29

答案 1 :(得分:0)

/* your library */
implementation 'com.github.bumptech.glide:glide:4.11.0'    
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

/* your code */

    Glide.with(this)
            .asBitmap()      //get hieght and width 
            .load("link image")
            .into(new SimpleTarget<Bitmap>() {
                @Override
                public void onResourceReady(@NonNull Bitmap resource, @Nullable 
                    Transition<? super Bitmap> transition) {
                    Log.d("TAG", "onResourceReady: "+resource.getWidth()+"    
                    "+resource.getHeight());
                }
            });

    //////////////////////////////////////

    Glide.with(this)
            .asFile()     // get size Image 
            .load("link image")
            .into(new SimpleTarget<File>() {
                @Override
                public void onResourceReady(@NonNull File resource, @Nullable 
                    Transition<? super File> transition) {
                    fab_full.setLabelText(""+resource.length());
                }
            });