큐레이션

- 아이템 2개에서 3개로 변경
This commit is contained in:
klaus 2024-02-13 14:08:41 +09:00
parent e51af38b75
commit a88f8c3316
8 changed files with 92 additions and 28 deletions

View File

@ -90,7 +90,7 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
private fun setupNewContent() { private fun setupNewContent() {
newContentAdapter = AudioContentNewAllAdapter( newContentAdapter = AudioContentNewAllAdapter(
itemWidth = (screenWidth - 40f.dpToPx().toInt()) / 2, itemWidth = (screenWidth - 54f.dpToPx().toInt()) / 3,
onClickItem = { onClickItem = {
startActivity( startActivity(
Intent(this, AudioContentDetailActivity::class.java).apply { Intent(this, AudioContentDetailActivity::class.java).apply {
@ -107,7 +107,7 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
} }
) )
binding.rvContent.layoutManager = GridLayoutManager(this, 2) binding.rvContent.layoutManager = GridLayoutManager(this, 3)
binding.rvContent.addItemDecoration(object : RecyclerView.ItemDecoration() { binding.rvContent.addItemDecoration(object : RecyclerView.ItemDecoration() {
override fun getItemOffsets( override fun getItemOffsets(
@ -118,31 +118,10 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
) { ) {
super.getItemOffsets(outRect, view, parent, state) super.getItemOffsets(outRect, view, parent, state)
val position = parent.getChildAdapterPosition(view) outRect.top = 6.7f.dpToPx().toInt()
if (position % 2 == 0) { outRect.bottom = 6.7f.dpToPx().toInt()
outRect.left = 13.3f.dpToPx().toInt() outRect.left = 6.7f.dpToPx().toInt()
outRect.right = 6.7f.dpToPx().toInt() outRect.right = 6.7f.dpToPx().toInt()
} else {
outRect.left = 6.7f.dpToPx().toInt()
outRect.right = 13.3f.dpToPx().toInt()
}
when (position) {
0, 1 -> {
outRect.top = 13.3f.dpToPx().toInt()
outRect.bottom = 6.7f.dpToPx().toInt()
}
newContentAdapter.itemCount - 1, newContentAdapter.itemCount - 2 -> {
outRect.top = 6.7f.dpToPx().toInt()
outRect.bottom = 13.3f.dpToPx().toInt()
}
else -> {
outRect.top = 6.7f.dpToPx().toInt()
outRect.bottom = 6.7f.dpToPx().toInt()
}
}
} }
}) })

View File

@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.audio_content.all
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -26,6 +27,7 @@ class AudioContentNewAllAdapter(
private val onClickCreator: (Long) -> Unit private val onClickCreator: (Long) -> Unit
) : RecyclerView.ViewHolder(binding.root) { ) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: GetAudioContentMainItem) { fun bind(item: GetAudioContentMainItem) {
Logger.e("item: $item")
binding.ivAudioContentCoverImage.load(item.coverImageUrl) { binding.ivAudioContentCoverImage.load(item.coverImageUrl) {
crossfade(true) crossfade(true)
placeholder(R.drawable.ic_place_holder) placeholder(R.drawable.ic_place_holder)
@ -48,6 +50,16 @@ class AudioContentNewAllAdapter(
binding.tvAudioContentTitle.text = item.title binding.tvAudioContentTitle.text = item.title
binding.tvAudioContentCreatorNickname.text = item.creatorNickname binding.tvAudioContentCreatorNickname.text = item.creatorNickname
if (item.price > 0) {
binding.ivCan.visibility = View.VISIBLE
binding.tvCan.text = "${item.price}"
} else {
binding.ivCan.visibility = View.GONE
binding.tvCan.text = "무료"
}
binding.tvTime.text = item.duration
binding.ivAudioContentCreator.setOnClickListener { onClickCreator(item.creatorId) } binding.ivAudioContentCreator.setOnClickListener { onClickCreator(item.creatorId) }
binding.root.setOnClickListener { onClickItem(item.contentId) } binding.root.setOnClickListener { onClickItem(item.contentId) }
} }

View File

@ -15,7 +15,9 @@ data class GetAudioContentMainItem(
@SerializedName("title") val title: String, @SerializedName("title") val title: String,
@SerializedName("creatorId") val creatorId: Long, @SerializedName("creatorId") val creatorId: Long,
@SerializedName("creatorProfileImageUrl") val creatorProfileImageUrl: String, @SerializedName("creatorProfileImageUrl") val creatorProfileImageUrl: String,
@SerializedName("creatorNickname") val creatorNickname: String @SerializedName("creatorNickname") val creatorNickname: String,
@SerializedName("price") val price: Int,
@SerializedName("duration") val duration: String
) )
data class GetAudioContentRanking( data class GetAudioContentRanking(

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_b3333333" />
<corners android:radius="10dp" />
<stroke
android:width="1dp"
android:color="@color/color_b3333333" />
</shape>

View File

@ -13,6 +13,68 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2.7dp"
android:layout_marginBottom="2.7dp"
android:background="@drawable/bg_round_corner_10_b3333333"
android:orientation="horizontal"
android:padding="3dp"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="@+id/iv_audio_content_cover_image"
app:layout_constraintStart_toStartOf="@+id/iv_audio_content_cover_image">
<ImageView
android:id="@+id/iv_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_card_can_gray" />
<TextView
android:id="@+id/tv_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:fontFamily="@font/gmarket_sans_medium"
android:textColor="@color/white"
android:textSize="8.3sp"
tools:ignore="SmallSp"
tools:text="300" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2.7dp"
android:layout_marginBottom="2.7dp"
android:background="@drawable/bg_round_corner_10_b3333333"
android:orientation="horizontal"
android:gravity="center"
android:padding="3dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_audio_content_cover_image"
app:layout_constraintEnd_toEndOf="@+id/iv_audio_content_cover_image">
<ImageView
android:id="@+id/iv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_card_time_small_gray" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:fontFamily="@font/gmarket_sans_medium"
android:textColor="@color/white"
android:textSize="8.3sp"
tools:ignore="SmallSp"
tools:text="00:00:30" />
</LinearLayout>
<TextView <TextView
android:id="@+id/tv_audio_content_title" android:id="@+id/tv_audio_content_title"
android:layout_width="0dp" android:layout_width="0dp"

View File

@ -37,6 +37,7 @@
<color name="color_ccc25264">#CCC25264</color> <color name="color_ccc25264">#CCC25264</color>
<color name="color_b3909090">#B3909090</color> <color name="color_b3909090">#B3909090</color>
<color name="color_b3333333">#B3333333</color>
<color name="color_88909090">#88909090</color> <color name="color_88909090">#88909090</color>
<color name="color_339970ff">#339970FF</color> <color name="color_339970ff">#339970FF</color>
<color name="color_7fe2e2e2">#7FE2E2E2</color> <color name="color_7fe2e2e2">#7FE2E2E2</color>