Android ImageView - 当adjustViewBounds=true时minWidth/minHeight没有效果
Posted
技术标签:
【中文标题】Android ImageView - 当adjustViewBounds=true时minWidth/minHeight没有效果【英文标题】:Android ImageView - minWidth/minHeight has no effect when adjustViewBounds=true 【发布时间】:2021-11-26 17:30:21 【问题描述】:我正在尝试使用 adjustViewBounds 包装较大的图像,但这是真的 minWidth/minHeight 不会保留用于较小的图像,它会占用图像的实际大小。
【问题讨论】:
【参考方案1】:如果您查看ImageView 中“onMeasure()”方法的source code,您会发现如果resizeWidth == true
中的任何一个,最小宽度和最小高度都不会起作用或resizeHeight == true
。如果adjustViewBounds
也为真,则这些调整大小变量设置为真。
adjustViewBounds == true
时可以引入minWidth
和minHeight
的使用,自定义ImageView 如下:
class MyImageView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : androidx.appcompat.widget.AppCompatImageView(context, attrs)
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int)
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
setMeasuredDimension(
max(suggestedMinimumWidth, measuredWidth),
max(suggestedMinimumHeight, measuredHeight)
)
【讨论】:
以上是关于Android ImageView - 当adjustViewBounds=true时minWidth/minHeight没有效果的主要内容,如果未能解决你的问题,请参考以下文章
ImageView 未显示在 android 中使用相机捕获的图像
Android ImageView - 当adjustViewBounds=true时minWidth/minHeight没有效果
Android课程---Android ImageView的scaleType属性与adjustViewBounds属性(转)