본문 바로가기
개발(Development)/Android(안드로이드)

[안드로이드] ImageView가 높이 전체를 차지할 때 비율 조정 방법: adjustViewBounds

by 카레유 2021. 7. 31.

안드로이드를 개발하다보면 이런 상황을 맞을 수 있다.

 

ImageView를 배치하고,

width, margin 등을 설정해서 이미지 크기를 조절 하는데

세로 높이가 자꾸 전체 화면을 차지하며 비율이 맞지 않는 상황이다.

 

가로(너비) 크기를 줄일 때 세로(높이)도 비율에 맞게 줄어들길 원한다면

adjustViewBounds 속성을 true로 설정하면된다.

 

 android:adjustViewBounds="true" 

 

디자인 모드에서도 설정할 수 있다.

adjustViewBounds 를 true로 설정하면 ImageView의 높이가 정상적인 비율로 축소된 것을 확인할 수 있다.

레이아웃 XML 전문은 아래와 같다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="32dp"
        android:layout_marginBottom="16dp"
        android:adjustViewBounds="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/test" />

</androidx.constraintlayout.widget.ConstraintLayout>

# android:adjustViewBounds 속성이란?

- 이미지의 비율을 유지하면서 크기를 조정하기 위한 속성이다.

- 자바, 코틀린 코드에서도 동적으로 설정할 수 있는 메서드가 제공된다. :   setAdjustViewBounds(boolean) 

 

 

댓글