fix(chat-room): 프로필 이미지 circle로 변경

This commit is contained in:
2025-08-15 00:36:47 +09:00
parent dd7251f18b
commit 4a0940ad26

View File

@@ -9,44 +9,34 @@ package kr.co.vividnext.sodalive.chat.talk.room
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import coil.load import coil.load
import coil.transform.RoundedCornersTransformation import coil.transform.CircleCropTransformation
import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.R
/**
* dp 값을 픽셀로 변환
*/
private fun ImageView.dpToPx(dp: Float): Float {
return dp * this.resources.displayMetrics.density
}
/** /**
* 프로필 이미지 로딩 공용 함수 * 프로필 이미지 로딩 공용 함수
* *
* @param url 이미지 URL (null 또는 빈 값이면 플레이스홀더로 대체) * @param url 이미지 URL (null 또는 빈 값이면 플레이스홀더로 대체)
* @param cornerRadiusDp 둥근 모서리 반경(dp). 기본 12dp
* @param placeholderRes 플레이스홀더/에러 리소스 * @param placeholderRes 플레이스홀더/에러 리소스
*/ */
fun loadProfileImage( fun loadProfileImage(
imageView: ImageView, imageView: ImageView,
url: String?, url: String?,
cornerRadiusDp: Float = 12f,
@DrawableRes placeholderRes: Int = R.drawable.ic_placeholder_profile @DrawableRes placeholderRes: Int = R.drawable.ic_placeholder_profile
) { ) {
val targetUrl = url?.takeIf { it.isNotBlank() } val targetUrl = url?.takeIf { it.isNotBlank() }
val radiusPx = imageView.dpToPx(cornerRadiusDp)
if (targetUrl != null) { if (targetUrl != null) {
imageView.load(targetUrl) { imageView.load(targetUrl) {
placeholder(placeholderRes) placeholder(placeholderRes)
error(placeholderRes) error(placeholderRes)
transformations(RoundedCornersTransformation(radiusPx)) transformations(CircleCropTransformation())
crossfade(true) crossfade(true)
} }
} else { } else {
imageView.load(placeholderRes) { imageView.load(placeholderRes) {
placeholder(placeholderRes) placeholder(placeholderRes)
error(placeholderRes) error(placeholderRes)
transformations(RoundedCornersTransformation(radiusPx)) transformations(CircleCropTransformation())
crossfade(true) crossfade(true)
} }
} }