需求:TextView 顯示類似對話氣泡/折疊效果的背景,內容自適應、邊框不變形。
一張標記了**可拉伸區域**、**內容區域**的 PNG 圖片,Android 自動按九宮格縮放,保持圓角、邊框、尖角不變形。
<TextView
android:id="@+id/tvMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_bubble" <!-- 直接引用 .9.png -->
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="Hello NinePatch!"
android:textColor="@android:color/white" />
layout_width/height="wrap_content":配合內容區域自適應。padding:對應 .9.png 定義的**內容區域**(右/下黑線內側),文字不會蓋住圓角/尖角。textView.setBackgroundResource(R.drawable.bg_bubble);
// 或
textView.setBackground(ContextCompat.getDrawable(context, R.drawable.bg_bubble));
<shape xmlns:android="..." android:shape="rectangle">
<solid android:color="#007AFF"/>
<corners android:radius="16dp"/>
<!-- 尖角需用 layer-list 疊加三角形 -->
</shape>
.9.png 是 Android 實現自適應氣泡/折疊背景的**標準方案**,一次制作、全局復用、零代碼縮放邏輯。