一、9patch圖片的概念
- 9patch圖片是andriod app開發(fā)里一種特殊的圖片形式,文件的擴(kuò)展名為:.9.png
- 9patch圖片的作用就是在圖片拉伸的時候保證其不會失真。所以我們使用.9圖片,讓圖片在指定的位置拉伸和在指定的位置顯示內(nèi)容,這樣圖片的邊邊角角就不會出現(xiàn)失真了。
二、使用.9圖片和不使用的差異
9patch和一般圖片的區(qū)別在于.9圖片有四條黑邊,而一般的圖片沒有,這四條黑邊就是用來拉伸和指定顯示位置的。
使用.9圖片后,整個圖片應(yīng)該是包裹著你想要顯示的內(nèi)容的,而沒有使用的話整個控件布局看起來特別糟糕。


三、繪制.9圖片
- 繪制之前先來說一下.9圖片的四條黑邊的意義,每條黑邊的意義都不一樣。
頂部:在水平拉伸的時候,保持其他位置不動,只在這個點(diǎn)的區(qū)域做無限的延伸(拷貝)
左邊:在豎直拉伸的時候,保持其他位置不動,只在這個點(diǎn)的區(qū)域做無限的延伸(拷貝)
底部:在水平拉伸的時候,指定圖片里的內(nèi)容顯示的區(qū)域
右邊:在豎直拉伸的時候,指定圖片里的內(nèi)容顯示的區(qū)域

1. 使用Eclipse工具制作.9圖片
- 在Eclipse中有提供專門的工具來制作.9圖片。在你的sdk目錄下的tools目錄下,有一個叫做draw9patch.bat的文件,雙擊打開就可以使用了。

- 打開之后,我們可以直接將圖片拖動到該工具之中,或者點(diǎn)擊File,然后在導(dǎo)入進(jìn)來。

導(dǎo)入之后,我們可以看到左邊是對圖片的操作界面,右邊則是實(shí)時的顯示界面。接下來,我們要對圖片進(jìn)行描邊了,描邊之前一定要清楚四條邊的含義,上左控制拉伸位置,下右控制內(nèi)容顯示位置。
描邊時,按下鼠標(biāo)左鍵,然后放在圖片邊界移動就能描邊了,要是想要去掉黑邊,可以按下Shift鍵,然后點(diǎn)擊鼠標(biāo)左鍵。
我們先繪制左上兩邊,控制拉伸位置,如下繪制完成了之后,可以看右邊的閱覽圖,明顯比沒有繪制時邊角的清晰度更高。

繪制完了圖片的拉伸區(qū)域之后,我們還需要繪制圖片包裹的內(nèi)容的顯示區(qū)域,如果沒有繪制的話,里邊的內(nèi)容是會從左到右依次顯示,這樣有時達(dá)不到我們想要的效果。
Demo中的圖片我想要圖片里面的文本顯示在中央?yún)^(qū)域,即不顯示在文本區(qū)域,所以我的黑色描邊可以這樣描。

通過對四條邊的描黑邊處理,我們就成功了避免了使用圖片時拉伸邊角的問題,拉伸的都是我們設(shè)置的區(qū)域,顯示的也是我們想要顯示的位置。
2. 使用Android Studio工具制作.9圖片
- Android Studio中天生就自帶了.9的繪制工具,你只需要將一般的png圖片的名字末尾加.9后綴再拷貝到drawable目錄下,然后點(diǎn)擊打開就能進(jìn)入.9圖片的繪制工具。如果是一般的圖片是不會打開.9繪制工具的。

- 接下的過程和在Eclipse的繪制過程是一模一樣的,這里就不再繼續(xù)演示了。繪制完成就可以直接使用了。
四、9patch圖片使用總結(jié)
要想學(xué)會繪制.9圖片一定要明白四條黑邊的意義,還有一定要會使用draw9patch工具。
開發(fā)過程中,大部分的.9圖片還是要我們程序員自己去繪制,當(dāng)然你在公司的美工比較多的除外。所以學(xué)會繪制.9圖片還是很重要的。
使用.9圖片遇到錯誤千萬別著急,先看一下錯誤提示,然后檢查一下你繪制的圖片有沒有問題,實(shí)在解決不了可以發(fā)出來大家一起想辦法。
五、關(guān)于在Android Studio中使用.9圖片出錯解決方案
用過Android Studio的童鞋都知道,AS中對.9的圖片增加了安全檢查機(jī)制,你的.9圖片只要有不規(guī)范的地方都會給你編譯報(bào)錯,本人剛開始用AS時就深受其苦,后來才找到了解決辦法。
-
解決方式主要有兩種:
-
一是讓AS取消掉對.9圖片的安全檢查。找到你app目錄下的build.gradle文件,打開之后你可以在buildToolsVersion屬性之下添加取消安全檢查的兩行代碼。
// 取消掉系統(tǒng)對.9圖片的檢查 aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false 二是 .9圖片編譯報(bào)錯,那肯定說明你的.9圖片制作不完善,你可以檢查一下圖片哪里沒繪制好。你可以檢查一下是否有重復(fù)繪制黑邊,或者有哪條邊沒有繪制。這里注意:AS中要求.9圖片的四條邊都會繪制。
-