오디션 이미지

- Coil을 사용하지 않고 Glide로 변경
This commit is contained in:
klaus 2025-01-04 02:01:58 +09:00
parent a4d1d69a97
commit 8441e4e5dd
4 changed files with 80 additions and 24 deletions

View File

@ -1,14 +1,18 @@
package kr.co.vividnext.sodalive.audition package kr.co.vividnext.sodalive.audition
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import com.bumptech.glide.Glide
import coil.transform.RoundedCornersTransformation 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.R
import kr.co.vividnext.sodalive.databinding.ItemAuditionListBinding import kr.co.vividnext.sodalive.databinding.ItemAuditionListBinding
import kr.co.vividnext.sodalive.databinding.ItemAuditionListCompletedHeaderBinding import kr.co.vividnext.sodalive.databinding.ItemAuditionListCompletedHeaderBinding
@ -59,15 +63,25 @@ class AuditionListAdapter(
} }
inner class ViewHolder( inner class ViewHolder(
private val context: Context,
private val binding: ItemAuditionListBinding private val binding: ItemAuditionListBinding
) : RecyclerView.ViewHolder(binding.root) { ) : RecyclerView.ViewHolder(binding.root) {
fun bind(data: DisplayItem.Data) { 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.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) { if (data.item.isOff) {
binding.blackCover.visibility = View.VISIBLE binding.blackCover.visibility = View.VISIBLE
@ -110,6 +124,7 @@ class AuditionListAdapter(
TYPE_ITEM -> { TYPE_ITEM -> {
ViewHolder( ViewHolder(
parent.context,
ItemAuditionListBinding.inflate( ItemAuditionListBinding.inflate(
LayoutInflater.from(parent.context), LayoutInflater.from(parent.context),
parent, parent,

View File

@ -9,6 +9,11 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import coil.load
import coil.transform.RoundedCornersTransformation 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.R
import kr.co.vividnext.sodalive.audition.role.AuditionRoleDetailActivity import kr.co.vividnext.sodalive.audition.role.AuditionRoleDetailActivity
import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.base.BaseActivity
@ -133,11 +138,19 @@ class AuditionDetailActivity : BaseActivity<ActivityAuditionDetailBinding>(
} }
viewModel.auditionDetailLiveData.observe(this) { viewModel.auditionDetailLiveData.observe(this) {
binding.ivCover.load(it.imageUrl) { Glide
crossfade(true) .with(this)
placeholder(R.drawable.bg_placeholder) .load(it.imageUrl)
transformations(RoundedCornersTransformation(5f.dpToPx())) .apply(
} RequestOptions().transform(
MultiTransformation(
CenterCrop(),
RoundedCorners(5f.dpToPx().toInt())
)
)
)
.placeholder(R.drawable.bg_black)
.into(binding.ivCover)
binding.toolbar.tvBack.text = it.title binding.toolbar.tvBack.text = it.title
binding.tvInformation.text = it.information binding.tvInformation.text = it.information

View File

@ -1,13 +1,17 @@
package kr.co.vividnext.sodalive.audition.detail package kr.co.vividnext.sodalive.audition.detail
import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import com.bumptech.glide.Glide
import coil.transform.RoundedCornersTransformation 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.R
import kr.co.vividnext.sodalive.databinding.ItemAuditionRoleBinding import kr.co.vividnext.sodalive.databinding.ItemAuditionRoleBinding
import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.dpToPx
@ -34,15 +38,25 @@ class AuditionDetailRoleAdapter(
} }
inner class ViewHolder( inner class ViewHolder(
private val context: Context,
private val binding: ItemAuditionRoleBinding private val binding: ItemAuditionRoleBinding
) : RecyclerView.ViewHolder(binding.root) { ) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: GetAuditionRoleListData) { 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.tvName.text = item.name
binding.ivCover.load(item.imageUrl) {
crossfade(true)
placeholder(R.drawable.bg_placeholder)
transformations(RoundedCornersTransformation(6.7f.dpToPx()))
}
if (item.isComplete) { if (item.isComplete) {
binding.blackCover.visibility = View.VISIBLE binding.blackCover.visibility = View.VISIBLE
@ -63,6 +77,7 @@ class AuditionDetailRoleAdapter(
} }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder( override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder(
parent.context,
ItemAuditionRoleBinding.inflate( ItemAuditionRoleBinding.inflate(
LayoutInflater.from(parent.context), LayoutInflater.from(parent.context),
parent, parent,

View File

@ -14,6 +14,11 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import coil.load
import coil.transform.RoundedCornersTransformation 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.R
import kr.co.vividnext.sodalive.audition.applicant.ApplicationMethodDialog import kr.co.vividnext.sodalive.audition.applicant.ApplicationMethodDialog
import kr.co.vividnext.sodalive.audition.applicant.AuditionApplicantListAdapter import kr.co.vividnext.sodalive.audition.applicant.AuditionApplicantListAdapter
@ -350,11 +355,19 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
binding.tvInformation.text = roleDetail.information binding.tvInformation.text = roleDetail.information
binding.ivCover.load(roleDetail.imageUrl) { Glide
crossfade(true) .with(this)
placeholder(R.drawable.bg_placeholder) .load(roleDetail.imageUrl)
transformations(RoundedCornersTransformation(5f.dpToPx())) .apply(
} RequestOptions().transform(
MultiTransformation(
CenterCrop(),
RoundedCorners(6.7f.dpToPx().toInt())
)
)
)
.placeholder(R.drawable.bg_black)
.into(binding.ivCover)
if (roleDetail.isAlreadyApplicant) { if (roleDetail.isAlreadyApplicant) {
reApplication = true reApplication = true