fix(character): 인기 캐릭터
- TextView 숫자 하단 여백(descent) 제거
This commit is contained in:
		@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
import android.view.View
 | 
			
		||||
import android.view.ViewGroup
 | 
			
		||||
import android.view.ViewTreeObserver
 | 
			
		||||
import androidx.recyclerview.widget.RecyclerView
 | 
			
		||||
import coil.load
 | 
			
		||||
import coil.transform.RoundedCornersTransformation
 | 
			
		||||
@@ -27,13 +28,27 @@ class CharacterAdapter(
 | 
			
		||||
 | 
			
		||||
            // 순위 표시 여부 결정
 | 
			
		||||
            if (showRanking) {
 | 
			
		||||
                binding.llRanking.visibility = View.VISIBLE
 | 
			
		||||
                binding.tvRanking.visibility = View.VISIBLE
 | 
			
		||||
                binding.tvRanking.text = (index + 1).toString()
 | 
			
		||||
                binding.tvRanking.apply {
 | 
			
		||||
                    includeFontPadding = false
 | 
			
		||||
                    maxLines = 1
 | 
			
		||||
                    // 뷰가 측정된 뒤 메트릭이 확정되므로, preDraw 시점에 보정
 | 
			
		||||
                    viewTreeObserver.addOnPreDrawListener(
 | 
			
		||||
                        object : ViewTreeObserver.OnPreDrawListener {
 | 
			
		||||
                            override fun onPreDraw(): Boolean {
 | 
			
		||||
                                viewTreeObserver.removeOnPreDrawListener(this)
 | 
			
		||||
                                val fm = paint.fontMetrics
 | 
			
		||||
                                // 글리프 하단을 라인 박스 하단에 맞추기 위한 시프트
 | 
			
		||||
                                translationY = fm.descent
 | 
			
		||||
                                return true
 | 
			
		||||
                            }
 | 
			
		||||
                        })
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                binding.llRanking.visibility = View.GONE
 | 
			
		||||
                binding.tvRanking.visibility = View.GONE
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            binding.ivCharacter.clipToOutline = true
 | 
			
		||||
            binding.ivCharacter.load(character.imageUrl) {
 | 
			
		||||
                crossfade(true)
 | 
			
		||||
                placeholder(R.drawable.ic_logo_service_center)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,39 +1,33 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
    android:layout_width="168dp"
 | 
			
		||||
    android:layout_height="wrap_content"
 | 
			
		||||
    android:orientation="vertical">
 | 
			
		||||
 | 
			
		||||
    <FrameLayout
 | 
			
		||||
        android:layout_width="168dp"
 | 
			
		||||
        android:layout_height="wrap_content">
 | 
			
		||||
        android:layout_height="168dp"
 | 
			
		||||
        android:background="@color/black">
 | 
			
		||||
 | 
			
		||||
        <ImageView
 | 
			
		||||
            android:id="@+id/iv_character"
 | 
			
		||||
            android:layout_width="168dp"
 | 
			
		||||
            android:layout_height="168dp"
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="match_parent"
 | 
			
		||||
            android:contentDescription="@null"
 | 
			
		||||
            android:scaleType="centerCrop" />
 | 
			
		||||
 | 
			
		||||
        <!-- 순위 표시 (인기 캐릭터에서만 보임) -->
 | 
			
		||||
        <LinearLayout
 | 
			
		||||
            android:id="@+id/ll_ranking"
 | 
			
		||||
        <TextView
 | 
			
		||||
            android:id="@+id/tv_ranking"
 | 
			
		||||
            android:layout_width="wrap_content"
 | 
			
		||||
            android:layout_height="wrap_content"
 | 
			
		||||
            android:layout_gravity="bottom"
 | 
			
		||||
            android:layout_marginStart="14dp"
 | 
			
		||||
            android:gravity="center"
 | 
			
		||||
            android:orientation="horizontal"
 | 
			
		||||
            android:visibility="gone">
 | 
			
		||||
 | 
			
		||||
            <TextView
 | 
			
		||||
                android:id="@+id/tv_ranking"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:fontFamily="@font/pretendard_bold"
 | 
			
		||||
                android:textColor="@color/white"
 | 
			
		||||
                android:textSize="72sp" />
 | 
			
		||||
        </LinearLayout>
 | 
			
		||||
            android:fontFamily="@font/pretendard_bold"
 | 
			
		||||
            android:includeFontPadding="false"
 | 
			
		||||
            android:maxLines="1"
 | 
			
		||||
            android:textColor="@color/white"
 | 
			
		||||
            android:textSize="72sp"
 | 
			
		||||
            tools:text="1" />
 | 
			
		||||
    </FrameLayout>
 | 
			
		||||
 | 
			
		||||
    <LinearLayout
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user