Android .9.png图片的处理
2019獨角獸企業重金招聘Python工程師標準>>>
android平臺有多種不同的分辨率,很多控件的切圖文件在被放大拉伸后,邊角會模糊失真,在android平臺下使用點九PNG技術,可以將圖片橫向和縱向同時進行拉伸,以實現在多分辨率下的完美顯示效果。
普通拉伸和點九拉伸效果對比:
對比很明顯,使用點九后,仍能保留圖像的漸變質感,和圓角的精細度。
.9.png是一種非失真性壓縮位圖圖形文件格式。這種格式的圖片和普通圖片的區別就是其四周多了一個黑色邊框。
左邊那條黑色線代表圖片縱向拉伸的區域,上邊的那條黑色線代表橫向拉伸區域,右邊的黑色線代表縱向內容繪制的區域,下邊的黑色線代表橫向內容繪制的區域,右邊和下邊的線是可選的,左邊和上邊的線不能省略。
其實就是利用黑線把圖片分成九宮格格式,被黑線劃分出來的中間塊狀區域(⑨)是可拉伸的,其他地方是保持不變的。
1.使用Andorid SDK\tools目錄下的Draw9Patch.jar制作9.PNG圖片?
(1)定義拉伸區域:
默認的拉伸是整體拉伸,其實邊框部分我們并不想拉伸,好,我們自己來定義拉伸區域,如下圖:
然后點擊File,導出為content.9.png。
在Eclipse新建Android工程,將圖片作為背景顯示出來:
<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="正文:A?NinePatchDrawable?graphic?is?a?stretchable?bitmap?image,?which?Android?will?????automatically?resize?to?accommodate?the?contents?of?the?View?in?which?you?have?placed?it?as?the?????background.?A?NinePatch?drawable?is?a?standard?PNG?image?that?includes?an?extra?1-pixel-wide?bor????der."android:background="@drawable/content"android:textColor="#000"/>
可以看出,邊框非常的清晰。下圖是未使用.9.png的對比圖,而且也不是我們要的效果:
到這里為止,我們已經基本會制作.9.PNG圖片了。為了知識體系的全面性和深入性,我們繼續。
(2)定義內容區域:
是不是覺得文字和邊距挨的太近,好,我們使用right和bottom邊的線來定義內容區域,來達到增大內邊距的目的。
我們定義了一個很小的內容區域,其他的地方則自動充當邊框,從而使內邊距顯的很大,如下圖:
在這里,我要特別說明,一開始為了增大內邊距,很容易慣性思維,在<TextView>中申明android:padding="10dip" 之類的,我在這里勸告朋友們不要這么做,一是你將無法預知你的顯示,二是這比較混淆,因為設置內容區域就是確定padding,所以我在前面部分說他們是神似。我個人認為通過內容區域設定padding比在布局xml中定義padding更優雅,更簡潔!
關于Draw9Patch工具的其他使用說明,我在次不再累述,因為要說的話太多,為了節省篇幅,請參考官方文檔。
(3)制作.9.PNG的高級技巧
對于初學Draw9Patch的人來說,這可以算是高級技巧,那就是:拉伸區域,可以不是連續的,可以不止一塊,而且是和自定義的邊框線的長度成正比。
直接上圖說明:
(4)draw9patch.bat其他功能說明
①Zoom: 用來縮放左邊編輯區域的大小
②Patch scale: 用來縮放右邊預覽區域的大小
③Show lock: 當鼠標在圖片區域的時候顯示不可編輯區域
④Show patches: 在編輯區域顯示圖片拉伸的區域 (使用粉紅色來標示)
⑤Show content: 在預覽區域顯示圖片的內容區域(使用淺紫色來標示)
⑥Show bad patches: 在拉伸區域周圍用紅色邊框顯示可能會對拉伸后的圖片產生變形的區域,如果完全消除該內容則圖片拉伸后是沒有變形的,也就是說,不管如何縮放圖片顯示都是良 好的。(實際試發現NinePatch編輯器是根據圖片的顏色值來區分是否為bad patch的,一邊來說只要色差不是太大不用考慮這個設置。)
2.使用Photoshop制作9.PNG圖片?
如流程圖所示,相對與方法1,只需2個步驟就可得到.9.png圖片,具體步驟為:
1. 確定切圖后直接改變圖片的畫布大小,
2. 手動將上下左右各增加1px
3. 使用鉛筆工具,手動繪制拉伸區域,色值必須為黑色(#000000)。
4. 存儲為web所用格式,選擇png-24,儲存時手動將后綴名改為.9.png
不過這種方法的缺點是不能實時預覽,判斷并測試拉伸區域的準確性。
使用此方法需要注意以下2點:
1. 手繪的黑線拉伸區必須是#000000,透明度100%,并且圖像四邊不能出現半透明像素;
2. 你的.9.png必須繪有拉伸區域的黑線;
否則,圖片不會通過android系統編譯,導致程序報錯。還有,有同學疑惑解壓縮apk文件后,.9.png圖片里的黑線怎么沒了?
那是因為andriod程序在把文件打包成apk的時候,程序會自動把*.9.png圖片邊緣的黑線去掉,所以解壓縮apk后看到的.9.png文件是沒有黑線的。
轉載于:https://my.oschina.net/u/1175007/blog/484589
總結
以上是生活随笔為你收集整理的Android .9.png图片的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小编教你联想笔记本怎么还原联想电脑如何一
- 下一篇: oracle数据库硬恢复,Oracle数