首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 九宮格圖片實現 TextView 折疊/氣泡背景:.9.png 制作與屬性設置

     編輯:程式設計綜合問答

需求:TextView 顯示類似對話氣泡/折疊效果的背景,內容自適應、邊框不變形。

核心技術:NinePatch (.9.png)

一張標記了**可拉伸區域**、**內容區域**的 PNG 圖片,Android 自動按九宮格縮放,保持圓角、邊框、尖角不變形。

制作步驟

  1. 準備原圖(含陰影、圓角、尖角)。
  2. 使用 **Android SDK `draw9patch` 工具** (`sdk/tools/draw9patch.bat`):
  3. 拖入圖片 → 左/上邊緣畫黑線標記**可拉伸區域** → 右/下邊緣畫黑線標記**內容區域** → 保存為 `bg_bubble.9.png`。
  4. 放入 `res/drawable/`(編譯時自動識別 .9.png)。

佈局使用

<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));

進階:XML Shape 純代碼替代(無圖片)

<shape xmlns:android="..." android:shape="rectangle">
    <solid android:color="#007AFF"/>
    <corners android:radius="16dp"/>
    <!-- 尖角需用 layer-list 疊加三角形 -->
</shape>

總結

.9.png 是 Android 實現自適應氣泡/折疊背景的**標準方案**,一次制作、全局復用、零代碼縮放邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved