Android Glide加载图片时,基于图片宽高比自动伸缩ImageView高度
ImageView布局
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
代码实现
GlideUtil.java
/**
* 加载图片,支持高度伸缩
* @param context 上下文
* @param url 图片地址
* @param imageView 图片组件
*/
public static void loadScaleImage(Context context,
String url,
final ImageView imageView) {
Glide.with(context)
.asBitmap()
.load(url)
.error(R.drawable.default_stand_bg)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
int imageWidth = resource.getWidth();
int imageHeight = resource.getHeight();
// 计算ImageView 的高度
int imageViewWidth = imageView.getWidth();
int imageViewHeight = (int) ((float) imageViewWidth / imageWidth * imageHeight);
// 设置ImageView 的高度
ViewGroup.LayoutParams params = imageView.getLayoutParams();
params.height = imageViewHeight;
imageView.setLayoutParams(params);
//将图片显示在 ImageView 中
imageView.setImageBitmap(resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
// 可选的清除操作
}
});
}
代码调用
ImageVIew iv = findViewById(R.id.iv_painting);
GlideUtil.loadScaleImage(context, paintingInfo.getUrl(), iv);