#java #android #android-studio
#java #Android #android-studio
Вопрос:
У меня есть изображение с соотношением сторон (высота) 3: (ширина) 1. Я хочу, чтобы это изображение соответствовало ширине экрана и сохраняло соотношение сторон.
например, если ширина экрана равна 720, ширина изображения будет равна 720, а высота изображения будет равна 720 x 3 (2160)
Ответ №1:
Решение без ConstraintLayout.
class AspectRatioImageView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
): AppCompatImageView(context, attrs, defStyleAttr) {
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
var height = (measuredWidth * 3 ).toInt()
setMeasuredDimension(width, height)
}
}
Затем вы можете использовать width as match_parent
и any height
при использовании AspectRatioImageView
в XML.
Ответ №2:
Привет, мне удалось решить мою проблему, вот решение:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/sign1s"
app:layout_constraintDimensionRatio="W,230:350"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>