您的位置:首页 > 其它

Glide 动态设置图片宽高的解决办法

2017-03-03 11:20 543 查看
public class GlideUtils {
public static void loadIntoUseFitWidth(Context context, final String imageUrl, int errorImageId, final ImageView imageView) {
Glide.with(context)
.load(imageUrl)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}

@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
if (imageView == null) {
return false;
}
if (imageView.getScaleType() != ImageView.ScaleType.FIT_XY) {
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
ViewGroup.LayoutParams params = imageView.getLayoutParams();
int vw = imageView.getWidth() - imageView.getPaddingLeft() - imageView.getPaddingRight();
//float scale = (float) vw / (float) resource.getIntrinsicWidth();
int vh = (int) ((float)vw/(float) 1.78);
params.height = vh + imageView.getPaddingTop() + imageView.getPaddingBottom();
imageView.setLayoutParams(params);
return false;
}
})
.placeholder(errorImageId)
.error(errorImageId)
.into(imageView);
}
}


1、整体思路就是通过获取平路的宽度,通过服务器图片的宽高比,我们服务器的是16:9,所以设置的是1.78

2、最后把宽高给imageView去展示

3、如果觉得这个宽高比不适合,也可以在方法多加一个参数就可以了,通过调用动态设置也是ok的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐