NinePatch圖片以*.9.png結尾,和普通圖片的區別是四周多了一個邊框(如下圖所示):
如上圖所示,左邊那條黑色線代表圖片垂直拉伸的區域,上邊的那條黑色線代表水平拉伸區域,右邊的黑色線代表內容繪製的垂直區域,下邊的黑色線代表內容繪製的水平區域,右邊和下邊的線是可選的,左邊和上邊的線不能省略。
採用NinePatch圖片做背景,可使背景隨着內容的拉伸(縮小)而拉伸(縮小)。那麼如何將普通的PNG圖片編輯爲NinePatch圖片呢, Android SDK/tools目錄下提供了編輯器draw9patch.bat,雙擊即可打開,使用起來很簡單了,主要有以下選項:
採用NinePatch圖片做背景,可使背景隨着內容的拉伸(縮小)而拉伸(縮小)。那麼如何將普通的PNG圖片編輯爲NinePatch圖片呢, Android SDK/tools目錄下提供了編輯器draw9patch.bat,雙擊即可打開,使用起來很簡單了,主要有以下選項:
Zoom: 用來縮放左邊編輯區域的大小
Patch scale: 用來縮放右邊預覽區域的大小
Show lock: 當鼠標在圖片區域的時候顯示不可編輯區域
Show patches: 在編輯區域顯示圖片拉伸的區域 (使用粉紅色來標示)
Show content: 在預覽區域顯示圖片的內容區域(使用淺紫色來標示)
Show bad patches: 在拉伸區域周圍用紅色邊框顯示可能會對拉伸後的圖片產生變形的區域,如果完全消除該內容則圖片拉伸後是沒有變形的,也就是說,不管如何縮放圖片顯示都是良好的。(實際試 發現NinePatch編輯器是根據圖片的顏色值來區分是否爲bad patch的,一邊來說只要色差不是太大不用考慮這個設置。)
例子:
NinePatch是一種很有用的PNG圖片格式,它可以在特定區域隨文字大小進行縮放。如下:
從上圖可以看到,背景圖片的中間區域會隨着文字的大小進行縮放。背景圖片是一張NinePatch圖片。 NinePatch圖片可以使用android自帶的draw9patch工具來製作,該工具在SDK安裝路徑的tools目錄下。執行該工具,然後點擊“File”->“open 9-path”打開一張用於製作NinePatch圖片的原來圖片。在畫布的上方和左方的邊上畫線指定縮放區域,
勾選“Show patches”可顯示畫定的區域,綠色
爲固定大小區域,紅色爲縮放區域,文字會擺放在紅色
區域。製作完後,點擊“File”? “save 9-path”保存
圖片,draw9patch工具會自動爲圖片加上*.9.png後綴。
把製作好的圖片拷貝進項目的res/drawable目錄,然後
編寫代碼。如下:
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退出" android:textColor="#330000"
android:background="@drawable/button"/>