資源描述:
《png圖片處理方法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、非原創(chuàng),原作者見諒介紹一下這次教程的情況:1.要會反編譯?!痉淳幾g用的工具是apktool,大家可以論壇搜索一下,到處都是教程的】2.電腦上得裝有androidSDK。【其實(shí)只要SDK目錄下tools中的draw9patch工具,處理nine-patch圖片的時(shí)候必須的。不想裝SDK的同學(xué)百度一下draw9patch應(yīng)該有的下載的?!?.還需要足夠的耐心。【機(jī)械般的重復(fù)動作比較多】大家可以先把framework-res.apk反編譯過來,然后定位到resdrawable-mdpi這個文件夾看看。打開之后你是不是發(fā)現(xiàn)里面的圖片和以往圖
2、片有所不同呢?沒錯,反編譯之后的圖片也和xml一樣現(xiàn)出原形了,一些需要拉伸的圖片四周都多了一個像素的邊框,帶了一條黑線。這就是androidUI獨(dú)特的圖片格式*.9.png。它獨(dú)特在哪呢?就是因?yàn)樗欣斓奶匦?。比如普通的一個短信輸入框,你發(fā)現(xiàn)他橫屏和豎屏的情況下分辨率絕對是不同的,但是我可以很負(fù)責(zé)任的告訴你,兩個框的圖片卻是同一張。但它卻沒有出現(xiàn)拉伸錯誤的現(xiàn)象,這就是*.9.png的威力了。具體理解可以看看下面圖一為nine-patch圖片拉伸的原理圖,原始的nine-patch圖片是在四個方向都有黑條的,黑條的寬度為一個像素,顏色
3、為純黑(RGB=000000)。編譯后,黑條自動消失。上方和左方的黑條分別是橫向和縱向的拉伸區(qū)域(用灰色強(qiáng)調(diào)了),如要橫向拉升圖片,將只會拉伸灰色區(qū)域。反之,如果只是普通圖片,拉伸將會出現(xiàn)嚴(yán)重的失真(如圖二)。而下方和右方則分別表示內(nèi)容的顯示區(qū)域(也可以沒有這兩個內(nèi)容區(qū)域橫條,不影響一般使用效果)。圖一圖二下圖就是android的SDK里面的nine-patch處理工具示意??戳藞D片相信你就明白了,為什么自己用普通圖形處理軟件處理的圖片放到手機(jī)上面的時(shí)候會拉伸不正常,導(dǎo)致修改失敗。那是因?yàn)槟銢]有經(jīng)過特殊處理,直接用*.png格式的圖片
4、,當(dāng)然會拉伸不正常。好了,情況描述完畢了,我們進(jìn)入教程。如何將普通的*.png格式圖片改成*.9.png格式?步驟一:提取樣本和素材先將一個有著官方UI的framework-res.apk反編譯,得到反編譯的文件。將res/drawable-mdpi提取出來。將這個文件夾改成【樣本】當(dāng)然你也可以改成自己的,我選擇改成樣本是因?yàn)樽约嚎粗奖?,下面的文件夾也一樣,隨便改,自己看著方便就行。接著將你要處理的有定制UI的framework-res.apk也反編譯,同樣,將res/drawable-mdpi(不一定是這個文件夾,也有可能是其他文
5、件夾,都在隔壁,打開看看就知道了)復(fù)制出來,將這個文件夾改成【素材】。這個我建議,大家把普通的png圖片和9.png圖片分開放。這樣方便修改些。這是我連續(xù)處理了將近4000個圖標(biāo)出來的經(jīng)驗(yàn)……全是自己手動一個個修改【含淚當(dāng)中】我就是將這些文件分別放入了【png素材】【9.png素材】【png樣本】【9.png樣本】這些文件再你處理好了之后就無用了。咱們只要成品。文件準(zhǔn)備好,打開圖像處理軟件。這里我推薦使用【Paint.NET】。為什么?因?yàn)镻S有些圖片處理不了??纯聪旅娴膱D大家就知道了。相同圖片打開之后卻是兩個結(jié)果,要問我是什么原因,
6、我也不知道,我也給這個問題困擾過好久,后來還是在黑人的推薦下用了Paint.NET,才解決了這個問題。好了,咱們接著講……這里我以一個下拉的nine-patch格式的圖標(biāo)為例,給大家講解。普通的png就不詳細(xì)講了。這都不會就不要往下看了哈。首先打開要處理的圖片。打開之后需要修改分辨率。按Ctrl+R彈出對話框。這個時(shí)候就可以修改分辨率了?,F(xiàn)在就用的到剛剛提取出來的官方UI的樣本文件夾了。打開【樣本】。找到這個相應(yīng)的圖片。選中它,在屏幕的左下角你能看到這張圖片的一些信息,我們要的分辨率就在下面。看圖:接著我們就可以將樣本中的圖片的分辨率
7、輸入到NET上面,將大分辨率的圖片修改成一樣的了。雖然通過修改分辨率之后的圖片的格式還是*.9.png,而且縮略圖上面也顯示還有四周的黑線在。不要以為那張圖片還是原來的,實(shí)際上里面的黑框已經(jīng)不在了,需要重新給它弄上去??梢杂肧DK里面處理圖形的工具打開看一看,你會發(fā)現(xiàn)里面的拉伸效果實(shí)際上已經(jīng)沒有了,我們要自己重新處理過。上面教大家將分辨率修改好了,下面咱們說說如何處理*.9.png。這才是重頭戲。首先,打開androidSDK下的tools中的draw9patch.bat?!娟P(guān)于SDK的安裝百度一下,很多教程的。論壇也有,搜索一下即可
8、】這個就是*.9.png要用到的處理工具。現(xiàn)在樣本又派上用場了,修改*.9.png同樣需要一個樣本來和素材對照。除非你對這個圖片已經(jīng)了然于胸了,不然我勸你還是用我這個笨辦法,雖然辦法笨,但勝在穩(wěn)。這個工具需要打開兩個,一