谷歌Android UI設(shè)計(jì)技巧:框架特性
原創(chuàng)本文為《谷歌Android UI設(shè)計(jì)技巧》第三部分:框架特性。
注:相對布局和線性布局是Android里面常用的兩種布局,線性布局比較簡單,而相對布局可以做出比較復(fù)雜的布局管理,所以僅僅了解線性布局,很多時(shí)候是不夠的。不過以作者之前Qt的經(jīng)驗(yàn)來看,Android里面的布局管理功能都比較陽春也不太容易使用,不過這可能是跟移動平臺的性能考量有關(guān)系。
注:最常用的修飾符可能是locale修飾符(制作多語文本),dpi修飾符(為不同密度的屏幕制作不同尺寸的圖標(biāo)和皮膚),orientation修飾符(為橫屏和豎屏提供不同的UI布局)。如果系統(tǒng)找不到對應(yīng)的修飾符版本,它就會選擇無修飾符的版本,這個(gè)版本通常也是所謂的默認(rèn)選擇。
注:drawables 在 Android 里面跟 WPF 里面的 Drawing 類似,用于定義一個(gè)可繪制的對象,包括位圖,刷子,填充顏色或者以上物件的組合等等。所謂 9-patch drawables,就是將一個(gè) drawable 按照定義的 4 個(gè)邊緣的寬度大小切割成9個(gè)區(qū)域,包括4個(gè)角落,4條邊緣和一個(gè)中心區(qū)域,當(dāng)把這個(gè) drawable 繪制到一個(gè)任意矩形區(qū)域時(shí),drawable 的各個(gè)區(qū)域有不同的拉伸控制(角落不拉伸,橫邊橫向拉伸,豎邊豎向拉伸,中心區(qū)域橫豎向都拉伸)。通常使用 9-patch drawable 一般是為了繪制出比較漂亮的帶圓角背景,這樣可以避免圓角及邊緣被任意拉伸導(dǎo)致變形。當(dāng)然,如果你的程序里面繪制的圖像和目標(biāo)區(qū)域大小完全一樣,就不需要那么麻煩,不過以 Android 的狀況來說,為了適應(yīng)多種設(shè)備,***不要事先假設(shè)目標(biāo)區(qū)域的像素大小。
注:所謂多層疊加,使用PS來制作圖標(biāo)和皮膚的同學(xué)可能都清楚,比如說一個(gè)按鈕的PS模板通常會包括所謂的background層定義底色,mask層定義輪廓,shine層定義前景的高亮效果。而 Android 里面允許你直接在 XML 腳本里面使用 Layer drawables 的語法來定義上述的多層疊加效果,這樣可能比在PS里面直接做好要更靈活一些,并且有的層可以是來自png位圖,有的層可以是直接通過 XML 腳本生成(比如純色,過渡色等等)。