오디션 이미지

- 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
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,

View File

@ -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<ActivityAuditionDetailBinding>(
}
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

View File

@ -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,

View File

@ -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<ActivityAuditionRoleDetailBindin
binding.tvInformation.text = roleDetail.information
binding.ivCover.load(roleDetail.imageUrl) {
crossfade(true)
placeholder(R.drawable.bg_placeholder)
transformations(RoundedCornersTransformation(5f.dpToPx()))
}
Glide
.with(this)
.load(roleDetail.imageUrl)
.apply(
RequestOptions().transform(
MultiTransformation(
CenterCrop(),
RoundedCorners(6.7f.dpToPx().toInt())
)
)
)
.placeholder(R.drawable.bg_black)
.into(binding.ivCover)
if (roleDetail.isAlreadyApplicant) {
reApplication = true