標籤:
Nine-Patch圖片是一種經過特殊處理的png圖片,能夠指定圖片的哪些地區可以被展開而哪些地區不可以。
(一)普通圖片被展開時的缺陷
有如下xml檔案,其中子LinearLayout的背景圖片設定成一個名為chat的png圖片:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <LinearLayout 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content"10 android:background="@drawable/chat" >11 </LinearLayout>12 13 </LinearLayout>
顯示效果如下:
而chat.png的原圖是這樣的:
可見嚴重變形,因為chat.png的寬度不足以填滿整個螢幕的寬度,整張圖片被均勻展開了,這是不能容忍的!於是我們就要把它處理成Nine-Patch圖片。
(二)Nine-Patch圖片的製作方法
1、在Android SDK的tools檔案夾下,有一個draw9patch.bat的檔案,就用它來製作Nine-Patch圖片。
2、開啟這個軟體後,點擊File—>Open 9-patch將chat.png載入進來,如下:
3、可以在圖片的四個邊框繪製一個個小黑點,上邊框和左邊框的部分表示當圖片需要展開時就展開黑點標記的地區,下邊框和右邊框繪製的部分則表示內容會被放置的地區,如:
4、修改好後點擊File—>Save 9-patch,把繪製好的圖片儲存成chat.9.png,然後把chat.9.png再複製到工程的drawable目錄下,並刪除原來的chat.png,這時再看效果就沒有展開變形醜陋的情況了(注意:此時xml中仍然寫成:android:background="@drawable/chat"而不是:android:background="@drawable/chat.9")
Android製作和使用Nine-Patch圖片