我正在开发一个Android应用程序,并在其中使用REST API。我从服务器接收图像网址,我想根据图像的原始高度使用图像网址显示这些图像。
如何使用网络图片网址获取图片的宽度和高度。我已经尝试从字符串url获取位图但是为此我想在后台线程中执行此操作,这导致图像加载非常慢。
有什么办法可以从图片网址获取图片的宽度和高度,并可以根据宽度和高度在imageview中显示图片。
如果有人知道,请帮助我。
非常感谢先进。
答案 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());
}
});