📱 Android

[Android / Glide] Glide override / Glide 이미지 크기 조정

콩드로이드 2024. 10. 8. 10:48

override

override이미지의 크기를 강제로 지정하여 로드할 때 사용되는 메서드입니다

우선 함수 원형을 보자면,

paramater로 width, height을 받아서 크기를 조절해줍니다 

  @NonNull
  @CheckResult
  public T override(int width, int height) {
    if (isAutoCloneEnabled) {
      return clone().override(width, height);
    }

    this.overrideWidth = width;
    this.overrideHeight = height;
    fields |= OVERRIDE;

    return selfOrThrowIfLocked();
  }

 

만약 width, height이 같다면 parameter에 int 하나만 입력하면 위의 함수를 호출하게 되어있습니다

  @NonNull
  @CheckResult
  public T override(int size) {
    return override(size, size);
  }

 


 

이미지를 가져오는 과정에서 미리 지정해둔 크기로 가져오기 때문에 메모리 사용량이 적어집니다 

다만, 지정해둔 크기로 가져오기때문에 비율에 문제가 생길 수 있어요 

 

비율문제 해결 방법

✅ ScaleType 조정  

1) ImageView의 scaleType 속성을 조정하거나 

<ImageView
   android:id="@+id/imageViewFitCenter"
   android:layout_width="match_parent"
   android:layout_height="200dp"
   android:scaleType="fitCenter"
   android:src="@drawable/sample_image" />

 

2) Glide의 RequestOptions 에서 fitCenter()  같은 옵션을 추가합니다 

    val requestOptionsFitCenter = RequestOptions()
        .fitCenter()

    Glide.with(imageView.context)
        .load(imageUrl)
        .apply(requestOptionsFitCenter) 
        .into(imageView)

 

ratio 유지 : app:layout_constraintDimensionRatio 속성을 사용해 비율을 설정합니다 

<ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintDimensionRatio="16:9"/>

 


궁금하신 점이나 의견이 있으시면 댓글 부탁드립니다 감사합니다 😊