在程式開發中,為了界面更加美觀,我們需要設定各種背景,比如布局背景、按鈕背景等,但在不同螢幕尺寸的情況下,我們的背景圖檔可能要進行縮放,已适應新的螢幕顯示,但這肯定就帶來一個圖檔失真的問題,而這又将造成使用者對産品的統一性體驗較差,幸好Android對這方面早有考慮,那就是9Patch圖檔。本文将結合官方文檔,來介紹下這方面的知識,算作自己的筆記。
9Patch圖檔是一種可縮放的位圖檔案,使用時Android系統将根據以該9Patch圖檔作為背景的View的内容來自動縮放9Patch背景圖檔。在Android系統中9Patch圖檔最常見的例子是Android Buttons。9patch雖以.9.png作為檔案名字尾但其仍然是一種标準的PNG圖檔,它的特别之處就在于在PNG圖檔四周圍有一個寬度為1像素的邊框,正是這4條邊框決定了9Patch圖檔的縮放規則和内容顯示規則。其中左上兩側的像素直線分别決定縱向和橫向的縮放區域,而右下兩側的像素直線則共同決定了圖檔的内容顯示區域。
要制作自己的9Patch圖檔,可以使用Android提供的9Patch指令行工具,該工具位于android sdk 安裝路徑下的tools目錄下,可以通過輕按兩下draw9Patch.bat檔案或者指令行來啟動該工具。
打開draw9patch工具後可以将png圖檔拖進來,或者通過File>Open 9-patch...來添加要制作的png圖檔。
左側窗格顯示要制作9Patch的圖檔,可以看到圖檔的四周分别有1像素寬的邊框,就是在這個邊框中進行縮放和内容顯示的設定。右側窗格中的三幅圖為效果預覽,當你在左側標明縮放區域和内容設定之後,就立刻會在右側看到預覽效果,這三幅圖中,最上的用于縱向縮放效果預覽、中間的用于水準方向的效果預覽、最下的用于整體效果預覽。
在左側窗格中,可以通過在左上兩側的像素邊框中點滑鼠左鍵繪制像素來分别設定縱向和橫向的縮放區域,在繪制好的像素上點右鍵将取消像素繪制。
左上控制縮放區域
右下控制内容顯示區域
這裡就不具體舉例子了。
還有點要說的就是draw9Patch工具中的一些控制操作。
Zoom:用于縮放左側窗格中的顯示
Patch scale:用于縮放右側窗格的顯示
Show lock:選中後,滑鼠在左側窗格的圖檔上移過的時候,會顯示不可編輯區域
Show content:用于在右側窗格總标注内容可顯示區域
Show patches:用于在左側窗格标注可擴充區域