什麼是9.png:
可能做過UI美化的同學都會知道,
framework-res.apk\res\drawable-hdpi 目錄下有非常非常多的XXXXXX.9.png圖片。
千萬不要以為這個9隻是png格式圖片的命名區分,其實他是一種特殊的格式,在png圖片的基礎上動了些手腳,而且這種手腳你會 看不見摸不著(詳情見下面具體內容)。
9.png格式的圖片是安卓平台上新創的一種被展開卻不失真的玩意(挺進階的吧),
也許有 的同學在做美化的時候很喜歡一個圖片素材,重新命名替換了drawable-hdpi下的素材,但是運行系統後發現,怎麼被展開得不像樣子 了,
哈哈,這就是9.png圖片不能輕易碰的神奇所在,不過不要緊,下面看完你就會了,安卓美化大師就是你了。
首先我們還是得介紹一下,9.png圖片他的具體不同之處,
它的四周與普通的png圖片相比多了一個像素位的白色地區,該地區 只有在圖片被還原和製造的時候才能看到,
當打包後無法看見,並且圖片的總像素會縮小2個像素,比如23x23像素的9.png圖片被 打包後會變成21x21像素。
所以我們在製作的時候要注意掌握尺寸。 當我們製作出9.png圖片的時候你還有驚奇的發現一個幾KB或者幾十KB的圖片
,變得非常的小,一般只有幾百個位元組那麼大, 系統載入起來當然會更加的流暢咯。
android tools下面有一個draw9patch.bat ,可以將一個png圖片變成一個由9個補丁(patch)組成的png。
並命名為9.png 內部原理: android會自動將.9.png的檔案當做 9 patch檔案來處理,9.png的檔案就是一個png檔案,
其特殊之處在於周圍一圈的框框由 0x00000000或者 0xffffffff 組成,即有一圈黑白框,
黑框所框住的地方是會被resize的,另外的4個角不會被resize, 而上下左右的四塊,會被單向resize。這對於一些按鈕的png十分有好處,
可以保持四周的圓角尺寸不變,而中心放大。 draw9patch.bat的使用方法是,
開啟一個普通的png圖,然後將四周的中心用滑鼠點上。再儲存。在右邊可以看到縮放後的效果。
{注意,對於從別人apk中破解9.png的時候,android編譯器已經將9.png的邊框去掉了,所以還要再使用draw9patch.bat自己整一下。}
然後在android eclipse中,將9.png的圖片放到drawable中,就可以使用了
ps:左、上交叉的地區是展開地區,即橫向展開和縱向展開。
右、下交叉地區是內容填充地區。