【Android】9.png小節

1、NinePatch Image簡介

NinePatch Image就是平時說的9.png格式圖片android

優勢:能夠定義可擴展區域,自動處理png圖片擴展的問題,能夠很好的適應Android設備那千奇百怪的屏幕分辨率要求。ide

限制,只適合純色或者簡單線框的圖形,若是涉及的圖像比較複雜或者顏色層次較多,是難以得到比較良好的擴展效果的。工具

主要特色:只是在普通png圖像最外面增長了一圈1px的邊框,邊框就是用來定義圖片中可擴展的和靜態的區域。對於大多數狀況來講,9.png能夠分割爲9個區域,這大概也是9.png這個名稱的由來:spa

如上圖所示,上邊和左邊的黑色邊框將圖片分割成9個區域,其中xml

1,3,7,9是靜態區域,也就是不會被擴展的區域。圖片

2,8是水平擴展區域ci

4,6是豎直擴展區域擴展

5是重合部分,也就是水平豎直都可以擴展的區域im

固然,雖然叫9.png圖片,可是並不僅限於分割成9個區域,上邊和左邊能夠定義任何數量的線框,從而將圖片分割成多個區域。margin

另外,右邊和底部邊框能夠定義內容區域,不過這個內容區域與是否擴展沒有聯繫,更多隻是像給內容增長一個padding而已:所以這部分是可選的。


2、draw9patch

draw9patch是android SDK自帶的編輯9.png圖片的小工具。使用比較簡單,只有幾個選項:

1.show lock。顯示不可繪區域

2.show patches。顯示分割區域

3.show content。顯示內容區域,即預覽圖中的紫色區域

4.show/hide bad patches。顯示有問題區域

惟一值得一提的是bad patches功能,能夠預先標示出在擴展中會出現失真的區域:

放大看看:

能夠看出,因爲水平擴展區域覆蓋了左上角的圓角,擴展過程當中會產生失真,因此用紅色方框標示出來了,這個功能算是比較有用的。

3、注意問題

(1)9.png格式圖片放在什麼文件夾下面?

9.png除了能夠定義擴展區域外,其餘與普通png沒有區別,因此最好是按照hdpi,xhdpi,xxdpi文件夾放置。因此若是隻是單純的圓角矩形之類的圖片,最好仍是直接使用xml文件定義drawable比較方便。

(2)9.png圖片大了怎麼辦?

若是9.png圖片過大,可能出現不一樣區域相互覆蓋的問題。因此9.png圖片只須要保留那些主要輪廓,儘可能作得小一些。

(3)9.png圖片顯示有黑邊框還在

若是右邊和下邊的內容區域沒有定義,某些時候就會出現這種問題,因此最好仍是將右邊和下邊的內容區域所有都定義出來。


Android分享 Q羣:315658668

相關文章
相關標籤/搜索