#android #android-layout #android-imageview
Вопрос:
Я пытаюсь обернуть изображение большего размера с помощью adjustViewBounds, но, хотя это верно, минимальная ширина/минимальная высота не сохраняются для изображений меньшего размера, и это занимает фактический размер изображения.
Ответ №1:
Если вы посмотрите исходный код метода «onMeasure()» в ImageView, вы увидите, что минимальная ширина и минимальная высота не вступают в игру, если или resizeWidth == true
или resizeHeight == true
. Эти переменные изменения размера имеют значение true, если adjustViewBounds
также верно.
Вы можете ввести использование minWidth
и minHeight
когда adjustViewBounds == true
с пользовательским просмотром изображений, например, следующим образом:
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)
)
}
}