From 964f6974669d2ba1ac9400a27d0fba4a248cd34e Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 18 Jul 2025 19:21:20 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A9=94=EC=9D=B8=20=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EB=B8=8C=20-=20=EA=B0=9C=ED=8E=B8=EB=90=9C=20=EC=A7=80?= =?UTF-8?q?=EA=B8=88=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=A4=91=20UI=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vividnext/sodalive/live/LiveFragment.kt | 12 +- .../sodalive/live/now/LiveNowAdapter.kt | 61 ++----- .../drawable/bg_round_corner_999_3b5ff1.xml | 6 + .../drawable/bg_round_corner_999_white.xml | 6 + app/src/main/res/layout/item_live_now.xml | 165 +++++++++--------- app/src/main/res/layout/layout_live_now.xml | 2 + 6 files changed, 114 insertions(+), 138 deletions(-) create mode 100644 app/src/main/res/drawable/bg_round_corner_999_3b5ff1.xml create mode 100644 app/src/main/res/drawable/bg_round_corner_999_white.xml diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt index 9e4a8f4c..888a8060 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt @@ -463,18 +463,18 @@ class LiveFragment : BaseFragment(FragmentLiveBinding::infl when (parent.getChildAdapterPosition(view)) { 0 -> { - outRect.left = 13.3f.dpToPx().toInt() - outRect.right = 5.dpToPx().toInt() + outRect.left = 0 + outRect.right = 8.dpToPx().toInt() } liveNowAdapter.itemCount - 1 -> { - outRect.left = 5.dpToPx().toInt() - outRect.right = 13.3f.dpToPx().toInt() + outRect.left = 8.dpToPx().toInt() + outRect.right = 0 } else -> { - outRect.left = 5.dpToPx().toInt() - outRect.right = 5.dpToPx().toInt() + outRect.left = 8.dpToPx().toInt() + outRect.right = 8.dpToPx().toInt() } } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt index 4a140f50..cc4326d7 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt @@ -5,17 +5,12 @@ import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import coil.transform.CircleCropTransformation import com.bumptech.glide.Glide -import com.bumptech.glide.load.resource.bitmap.CenterCrop -import com.bumptech.glide.load.resource.bitmap.RoundedCorners +import com.bumptech.glide.load.resource.bitmap.CircleCrop import com.bumptech.glide.request.RequestOptions -import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.databinding.ItemLiveNowBinding -import kr.co.vividnext.sodalive.extensions.dpToPx -import kr.co.vividnext.sodalive.extensions.loadUrl +import kr.co.vividnext.sodalive.extensions.moneyFormat import kr.co.vividnext.sodalive.live.GetRoomListResponse class LiveNowAdapter( @@ -33,54 +28,24 @@ class LiveNowAdapter( fun bind(item: GetRoomListResponse) { Glide .with(context) - .load(item.coverImageUrl) + .load(item.creatorProfileImage) .apply( RequestOptions().transform( - CenterCrop(), - RoundedCorners(8) + CircleCrop() ) ) - .into(binding.ivCover) - - val layoutParams = binding.ivCover.layoutParams as ConstraintLayout.LayoutParams - layoutParams.width = 128f.dpToPx().toInt() - layoutParams.height = 179f.dpToPx().toInt() - binding.ivCover.layoutParams = layoutParams - - binding.ivLock.visibility = if (item.isPrivateRoom) { - View.VISIBLE - } else { - View.GONE - } - - if (item.price > 0) { - binding.tvPrice.text = "${item.price}" - binding.tvPrice.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_can_white, - 0, - 0, - 0 - ) - binding.tvPrice.setBackgroundResource(R.drawable.bg_round_corner_13_3_dd4500) - } else { - binding.tvPrice.text = "무료" - binding.tvPrice.setCompoundDrawables(null, null, null, null) - binding.tvPrice.setBackgroundResource(R.drawable.bg_round_corner_13_3_111111) - } - - if (item.tags.isNotEmpty()) { - binding.tvTags.visibility = View.VISIBLE - binding.tvTags.text = item.tags.joinToString(" ") { "#$it" } - } else { - binding.tvTags.visibility = View.GONE - } + .into(binding.ivProfile) binding.tvTitle.text = item.title binding.tvNickname.text = item.creatorNickname - binding.ivProfile.loadUrl(item.creatorProfileImage) { - crossfade(true) - placeholder(R.drawable.ic_place_holder) - transformations(CircleCropTransformation()) + + if (item.price > 0) { + binding.llCan.visibility = View.VISIBLE + binding.tvCan.text = item.price.moneyFormat() + binding.tvFree.visibility = View.GONE + } else { + binding.llCan.visibility = View.GONE + binding.tvFree.visibility = View.VISIBLE } binding.root.setOnClickListener { onClick(item) } diff --git a/app/src/main/res/drawable/bg_round_corner_999_3b5ff1.xml b/app/src/main/res/drawable/bg_round_corner_999_3b5ff1.xml new file mode 100644 index 00000000..5ada2787 --- /dev/null +++ b/app/src/main/res/drawable/bg_round_corner_999_3b5ff1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_round_corner_999_white.xml b/app/src/main/res/drawable/bg_round_corner_999_white.xml new file mode 100644 index 00000000..c9441082 --- /dev/null +++ b/app/src/main/res/drawable/bg_round_corner_999_white.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/layout/item_live_now.xml b/app/src/main/res/layout/item_live_now.xml index 32bd6079..5b1bef1f 100644 --- a/app/src/main/res/layout/item_live_now.xml +++ b/app/src/main/res/layout/item_live_now.xml @@ -2,121 +2,118 @@ + android:layout_width="168dp" + android:layout_height="238dp" + android:background="@drawable/bg_home_creator" + android:orientation="vertical" + android:padding="16dp"> - - - + + app:layout_constraintTop_toTopOf="parent"> + + + + + + + - - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/fl_profile" + tools:text="도화" /> + android:textColor="#B0BEC5" + android:textSize="14sp" + app:layout_constraintBottom_toTopOf="@+id/fl_can" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tv_nickname" + tools:text="제목제목제목제목제목제목" /> - + android:gravity="center" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + android:background="@drawable/bg_round_corner_999_white" + android:fontFamily="@font/pretendard_regular" + android:gravity="center" + android:paddingVertical="8dp" + android:text="무료" + android:textColor="#263238" + android:textSize="14sp" + android:visibility="gone" /> + android:paddingVertical="8dp" + android:visibility="gone"> + android:layout_width="16dp" + android:layout_height="16dp" + android:layout_marginEnd="2dp" + android:contentDescription="@null" + android:src="@drawable/ic_can_circle" /> + android:fontFamily="@font/pretendard_regular" + android:textColor="#FFFFFF" + android:textSize="14sp" + tools:text="300" /> - + diff --git a/app/src/main/res/layout/layout_live_now.xml b/app/src/main/res/layout/layout_live_now.xml index e50ca089..5c497d31 100644 --- a/app/src/main/res/layout/layout_live_now.xml +++ b/app/src/main/res/layout/layout_live_now.xml @@ -49,6 +49,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" + android:clipToPadding="false" + android:paddingHorizontal="24dp" android:visibility="gone" />