Android ImageView scaleType 속성

98oys·2022년 5월 17일
0
           <ImageView
                android:id="@+id/first_imageView"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:cropToPadding="true"
                android:scaleType="centerInside"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@id/edit_text" />           

ImageView에는 다양한 속성이 있습니다.

그중에 android:scaleType이라는 속성이 있습니다.

옵션값은 총 8개로 나눠집니다.

  1. android:scaleType="center" : 이미지 원본 크기와 비율을 유지하며 이미지의 중앙을 layout_width, layout_height 안에 출력합니다. 이 때 layout보다 이미지가 크면 layout의 벗어난 이미지는 출력되지 않습니다. layout보다 이미지가 작으면 이미지를 center 정렬합니다.
    (원본 이미지를 그대로 올리는 방법)

  2. android:scaleType="centerCrop" : 이미지의 가로/세로의 길이 중 짧은 쪽을 ImageView의 layout에 꽉 차게 크기를 맞춰 출력합니다. 이 때 원본 이미지 가로/세로의 비율은 유지되고 layout 영역에서 벗어난 이미지는 출력되지 않습니다.
    (이미지가 뭉개지더라도 규격에 맞춤)

  3. android:scaleType="centerInside" : 이미지의 가로/세로의 길이 중 긴 쪽을 ImageView의 layout에 맞춰서 출력합니다. 이 때 원본 이미지의 가로/세로 비율은 유지되고 layout에 이미지외 빈공간은 background 속성의 color로 채워집니다. fitCenter와 다른점은 원본 이미지가 ImageView의 layout보다 작다면, 이미지의 크기는 유지됩니다.
    (이미지가 뭉개지더라도 규격에 맞춤)

  4. android:scaleType="fitCenter" : 이미지의 가로/세로의 길이 중 긴 쪽을 ImageView의 layout에 맞춰서 출력합니다. 이 때 원본 이미지의 가로/세로 비율은 유지되고 layout에 이미지외 빈공간은 background 속성의 color로 채워집니다. centerInside와 다른점은 이미지의 크기가 ImageView의 레이아웃 크기에 따라 변합니다.

  5. android:scaleType="fitStart" : ImageView layout 안에서 이미지의 가로/세로 비율을 유지하며 출력되지만 ImageView의 layout의 왼쪽 상단을 기준으로 정렬된다.

  6. android:scaleType="fitEnd" : ImageView layout 안에서 이미지의 가로/세로 비율을 유지하며 출력되지만 ImageView의 layout의 오른쪽 하단을 기준으로 정렬된다.

  7. android:scaleType="fitXY" : 가로/세로 비율에 상관없이 ImageView의 레이아웃의 각 면에 꽉 차게 출력된다.

  8. android:scaleType="matrix" : 이미지 원본의 크기와 비율을 유지하며 이미지 원본대로 왼쪽 상단을 기준으로 출력된다. 이미지가 ImageView의 레이아웃 보다 크다면 나머지 이미지는 출력되지 않는다.
    (이미지가 짤릴 가능성이 크므로 안쓰는게 낫다고 생각)

profile
Android Developer, Department of Information and Communication Engineering, Inha University

0개의 댓글