From 8441e4e5dd1486be7927bcea4439dac35512e3b1 Mon Sep 17 00:00:00 2001 From: klaus Date: Sat, 4 Jan 2025 02:01:58 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=94=94=EC=85=98=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20-=20Coil=EC=9D=84=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B3=A0=20Glide=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/audition/AuditionListAdapter.kt | 29 ++++++++++++++----- .../audition/detail/AuditionDetailActivity.kt | 23 +++++++++++---- .../detail/AuditionDetailRoleAdapter.kt | 29 ++++++++++++++----- .../role/AuditionRoleDetailActivity.kt | 23 +++++++++++---- 4 files changed, 80 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audition/AuditionListAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/audition/AuditionListAdapter.kt index 3e1410a..2220231 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audition/AuditionListAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audition/AuditionListAdapter.kt @@ -1,14 +1,18 @@ package kr.co.vividnext.sodalive.audition import android.annotation.SuppressLint +import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import coil.load -import coil.transform.RoundedCornersTransformation +import com.bumptech.glide.Glide +import com.bumptech.glide.load.MultiTransformation +import com.bumptech.glide.load.resource.bitmap.CenterCrop +import com.bumptech.glide.load.resource.bitmap.RoundedCorners +import com.bumptech.glide.request.RequestOptions import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.databinding.ItemAuditionListBinding import kr.co.vividnext.sodalive.databinding.ItemAuditionListCompletedHeaderBinding @@ -59,15 +63,25 @@ class AuditionListAdapter( } inner class ViewHolder( + private val context: Context, private val binding: ItemAuditionListBinding ) : RecyclerView.ViewHolder(binding.root) { fun bind(data: DisplayItem.Data) { + Glide + .with(context) + .load(data.item.imageUrl) + .apply( + RequestOptions().transform( + MultiTransformation( + CenterCrop(), + RoundedCorners(5f.dpToPx().toInt()) + ) + ) + ) + .placeholder(R.drawable.bg_black) + .into(binding.ivCover) + binding.tvTitle.text = data.item.title - binding.ivCover.load(data.item.imageUrl) { - crossfade(true) - placeholder(R.drawable.ic_place_holder) - transformations(RoundedCornersTransformation(5f.dpToPx())) - } if (data.item.isOff) { binding.blackCover.visibility = View.VISIBLE @@ -110,6 +124,7 @@ class AuditionListAdapter( TYPE_ITEM -> { ViewHolder( + parent.context, ItemAuditionListBinding.inflate( LayoutInflater.from(parent.context), parent, diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailActivity.kt index 37e0edb..91ddf1f 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailActivity.kt @@ -9,6 +9,11 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import coil.load import coil.transform.RoundedCornersTransformation +import com.bumptech.glide.Glide +import com.bumptech.glide.load.MultiTransformation +import com.bumptech.glide.load.resource.bitmap.CenterCrop +import com.bumptech.glide.load.resource.bitmap.RoundedCorners +import com.bumptech.glide.request.RequestOptions import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.audition.role.AuditionRoleDetailActivity import kr.co.vividnext.sodalive.base.BaseActivity @@ -133,11 +138,19 @@ class AuditionDetailActivity : BaseActivity( } viewModel.auditionDetailLiveData.observe(this) { - binding.ivCover.load(it.imageUrl) { - crossfade(true) - placeholder(R.drawable.bg_placeholder) - transformations(RoundedCornersTransformation(5f.dpToPx())) - } + Glide + .with(this) + .load(it.imageUrl) + .apply( + RequestOptions().transform( + MultiTransformation( + CenterCrop(), + RoundedCorners(5f.dpToPx().toInt()) + ) + ) + ) + .placeholder(R.drawable.bg_black) + .into(binding.ivCover) binding.toolbar.tvBack.text = it.title binding.tvInformation.text = it.information diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailRoleAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailRoleAdapter.kt index 61b1092..20d5d41 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailRoleAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audition/detail/AuditionDetailRoleAdapter.kt @@ -1,13 +1,17 @@ package kr.co.vividnext.sodalive.audition.detail +import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import coil.load -import coil.transform.RoundedCornersTransformation +import com.bumptech.glide.Glide +import com.bumptech.glide.load.MultiTransformation +import com.bumptech.glide.load.resource.bitmap.CenterCrop +import com.bumptech.glide.load.resource.bitmap.RoundedCorners +import com.bumptech.glide.request.RequestOptions import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.databinding.ItemAuditionRoleBinding import kr.co.vividnext.sodalive.extensions.dpToPx @@ -34,15 +38,25 @@ class AuditionDetailRoleAdapter( } inner class ViewHolder( + private val context: Context, private val binding: ItemAuditionRoleBinding ) : RecyclerView.ViewHolder(binding.root) { fun bind(item: GetAuditionRoleListData) { + Glide + .with(context) + .load(item.imageUrl) + .apply( + RequestOptions().transform( + MultiTransformation( + CenterCrop(), + RoundedCorners(6.7f.dpToPx().toInt()) + ) + ) + ) + .placeholder(R.drawable.bg_black) + .into(binding.ivCover) + binding.tvName.text = item.name - binding.ivCover.load(item.imageUrl) { - crossfade(true) - placeholder(R.drawable.bg_placeholder) - transformations(RoundedCornersTransformation(6.7f.dpToPx())) - } if (item.isComplete) { binding.blackCover.visibility = View.VISIBLE @@ -63,6 +77,7 @@ class AuditionDetailRoleAdapter( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder( + parent.context, ItemAuditionRoleBinding.inflate( LayoutInflater.from(parent.context), parent, diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt index 328da29..bbbee01 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt @@ -14,6 +14,11 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import coil.load import coil.transform.RoundedCornersTransformation +import com.bumptech.glide.Glide +import com.bumptech.glide.load.MultiTransformation +import com.bumptech.glide.load.resource.bitmap.CenterCrop +import com.bumptech.glide.load.resource.bitmap.RoundedCorners +import com.bumptech.glide.request.RequestOptions import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.audition.applicant.ApplicationMethodDialog import kr.co.vividnext.sodalive.audition.applicant.AuditionApplicantListAdapter @@ -350,11 +355,19 @@ class AuditionRoleDetailActivity : BaseActivity