Glide centerCrop 不生效求助:如何实现68x68方形图片显示?
问题排查与解决
1. 确认ImageView实际尺寸是否为68x68dp
用Android Studio的Layout Inspector工具查看ImageView的实际宽高,如果不是68x68dp,说明布局约束存在问题:
- 检查父布局是否对ImageView的宽高有额外约束(比如在ConstraintLayout中误将height设为
wrap_content或match_parent) - 确保没有使用
layout_weight等会篡改尺寸的属性
2. 强制Glide按目标尺寸加载图片
如果ImageView尺寸正确,但图片仍显示为矩形,可在Glide加载代码中添加override()强制指定加载尺寸(需将dp转换为像素):
val size = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 68f, root.context.resources.displayMetrics ).toInt() Glide.with(root.context) .load(url) .placeholder(R.drawable.product) .error(R.drawable.product) .override(size) // 强制按指定像素尺寸加载 .centerCrop() .into(bindingUsersMedia.imageViewMedia)
3. 检查占位图/错误图的形状
如果显示的是占位图或错误图,确认R.drawable.product本身是否为方形。若该资源是矩形,即使ImageView是方形,显示内容也会是裁剪后的矩形区域。若需要占位图也显示方形,需替换为方形资源。
4. 移除可能的冲突设置
确保ImageView没有添加adjustViewBounds="true"属性,该属性会让ImageView根据图片比例调整自身尺寸,可能破坏68x68的方形设置。
内容的提问来源于stack exchange,提问作者Student4543
相关产品推荐
相关产品推荐

