fix(home): 커뮤니티 이미지 로드 크기를 전달한다

This commit is contained in:
2026-07-12 20:51:36 +09:00
parent 9244a00713
commit 2a499eaf41
2 changed files with 24 additions and 5 deletions

View File

@@ -132,7 +132,9 @@ class HomeFollowingNewsAdapter(
view.setFeedSize(feedSize(FeedVariant.Community, parent)) view.setFeedSize(feedSize(FeedVariant.Community, parent))
view.bind(feedItem) view.bind(feedItem)
view.profileImageView().loadHomeCreatorProfileImage(feedItem.creatorImageUrl) view.profileImageView().loadHomeCreatorProfileImage(feedItem.creatorImageUrl)
bindImage(view.communityImageView(), feedItem.imageUrl.orEmpty()) bindImage(view.communityImageView(), feedItem.imageUrl.orEmpty()) { width, height ->
view.applyCommunityImageSize(width, height)
}
view.setOnFeedClick { onClickItem(community) } view.setOnFeedClick { onClickItem(community) }
} }
} }
@@ -176,11 +178,21 @@ class HomeFollowingNewsAdapter(
return FeedSize.from(variant, FeedWidthMode.ParentAvailable, availableWidthDp) return FeedSize.from(variant, FeedWidthMode.ParentAvailable, availableWidthDp)
} }
private fun bindImage(imageView: android.widget.ImageView, url: String) { private fun bindImage(
imageView: android.widget.ImageView,
url: String,
onImageLoaded: ((Int, Int) -> Unit)? = null
) {
if (url.isBlank()) { if (url.isBlank()) {
imageView.setImageDrawable(null) imageView.setImageDrawable(null)
} else { } else {
imageView.loadUrl(url) imageView.loadUrl(url) {
listener(
onSuccess = { _, result ->
onImageLoaded?.invoke(result.drawable.intrinsicWidth, result.drawable.intrinsicHeight)
}
)
}
} }
} }

View File

@@ -53,20 +53,27 @@ class HomePopularCommunityAdapter(
bindImage( bindImage(
imageUrl = item.item.imageUrl, imageUrl = item.item.imageUrl,
imageView = view.communityImageView(), imageView = view.communityImageView(),
shouldBlur = item.item.price > 0 && !item.item.existOrdered shouldBlur = item.item.price > 0 && !item.item.existOrdered,
onImageLoaded = { width, height -> view.applyCommunityImageSize(width, height) }
) )
} }
private fun bindImage( private fun bindImage(
imageUrl: String?, imageUrl: String?,
imageView: android.widget.ImageView, imageView: android.widget.ImageView,
shouldBlur: Boolean = false shouldBlur: Boolean = false,
onImageLoaded: ((Int, Int) -> Unit)? = null
) { ) {
if (imageUrl.isNullOrBlank()) { if (imageUrl.isNullOrBlank()) {
imageView.dispose() imageView.dispose()
imageView.setImageDrawable(null) imageView.setImageDrawable(null)
} else { } else {
imageView.loadUrl(imageUrl) { imageView.loadUrl(imageUrl) {
listener(
onSuccess = { _, result ->
onImageLoaded?.invoke(result.drawable.intrinsicWidth, result.drawable.intrinsicHeight)
}
)
if (shouldBlur) { if (shouldBlur) {
transformations(BlurTransformation(imageView.context, 25f, 2.5f)) transformations(BlurTransformation(imageView.context, 25f, 2.5f))
} }