Android設計中的.9.png

jopen 10年前發布 | 11K 次閱讀 Android Android開發 移動開發

在Android的設計過程中,為了適配不同的手機分辨率,圖片大多需要拉伸或者壓縮,這樣就出現了可以任意調整代大小的一種圖片格式“.9.png”。 這種圖片是用于Android開發的一種特殊的圖片格式,它的好處在于可以用簡單的方式把一種圖片中那些區域可以拉伸,那些區域不可以拉伸設定好,同時可 以把顯示內容區域的位置標示清楚。

本文結合一些具體的例子來看下.9.png與.png的資源區別:
Android設計中的.9.png
普通的png資源就不多介紹了,可以明顯看到.9.png的外圍是有一些黑色的線條的,那些線條是用來做什么的呢?我們來看下放大的圖像:
Android設計中的.9.png
放大后可以比較明顯地看到上下左右分別有一個黑色的線短,這里分別標注了序號。簡單來說,序號1和2標識了可以拉伸的區域,序號3和4標識了內容區域。當設定了按鈕實際應用的寬和高之后,橫向會拉伸1區域是我像素,縱向會拉伸2區域的像素。如下圖:
Android設計中的.9.png
拉伸的含義應該比較容易理解,但是內容區域的標注有什么意義呢?我們來看下圖:
Android設計中的.9.png
這里持續設置的文字垂直居中、水平居左的對齊方式。對齊方式是沒有問題的,但是對于這種大圓角同時又有些不規則邊框的圖形來說,錯誤的標注方式會讓排版看起來很混亂。所以我們需要修正內容區域的線段位置和長度。Android設計中的.9.png
把橫向的內容區域縮短到圓角以內,總想的內容控制在輸入框的高度以內,這樣文字就可以正常顯示了。

這里還有一種特殊的情況,就是本身.9.png的資源,但是在修改過程中你希望這張.9.png不能被拉伸(在做皮膚的情況中可能會遇到),那怎么辦呢? 只要把拉伸區域的點 點在透明像素的地方就可以了這樣拉伸的時候就會在拉伸透明部分的像素,而不會拉伸圖像本身。如下圖:
Android設計中的.9.png
大家可以看到拉伸區域的黑點是可以不連續的。

說了半天的.9.png的用法,那.9.png如何輸出呢?有很多種方式可以輸出.9.png,比如說用draw9patch.bat這樣的工具。

有兩點需要特別注意的:

1)最外圍的一圈像素必須要么是黑色的,要么是透明的,一點點的半透明的像素都不可以有,比如說99%的黑色或者1%的投影都不可以有。

2)文件的后綴必須是.9.png,不能是.png或是.9.png.png,這樣的命名都會導致編譯失敗。

原文地址:http://isux.tencent.com/android-ui-9-png.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!