術(shù)語(yǔ)和概念
屏幕尺寸
屏幕的物理尺寸,以屏幕的對(duì)角線長(zhǎng)度作為依據(jù)(比如 2.8寸, 3.5寸)。
簡(jiǎn)而言之, Android把所有的屏幕尺寸簡(jiǎn)化為三大類:大,正常,和小。
程序可以針對(duì)這三種尺寸的屏幕提供三種不同的布局方案,然后系統(tǒng)會(huì)負(fù)責(zé)把你的布局方案以合適的方式渲染到對(duì)應(yīng)的屏幕上,這個(gè)過(guò)程是不需要程序員用代碼來(lái)干預(yù)的。
屏幕長(zhǎng)寬比
屏幕的物理長(zhǎng)度與物理寬度的比例。程序可以為制定長(zhǎng)寬比的屏幕提供制定的素材,只需要用系統(tǒng)提供的資源分類符long和 notlong。
分辨率
屏幕上擁有的像素的總數(shù)。注意,雖然大部分情況下分辨率都被表示為“寬度×長(zhǎng)度”,但分辨率并不意味著屏幕長(zhǎng)寬比。在 Android系統(tǒng)中,程序一般并不直接處理分辨率。
密度
以屏幕分辨率為基礎(chǔ),沿屏幕長(zhǎng)寬方向排列的像素。
密度較低的屏幕,在長(zhǎng)和寬方向都只有比較少的像素,而高密度的屏幕通常則會(huì)有很多 ——甚至?xí)浅7浅6唷袼嘏帕性谕粎^(qū)域。屏幕的密度是非常重要的,舉個(gè)例子,長(zhǎng)寬以像素為單位定義的界面元素(比如一個(gè)按鈕),在低密度的屏幕上會(huì) 顯得很大,但在高密度的屏幕上則會(huì)顯得很小。
密度無(wú)關(guān)的像素( DIP )
指一個(gè)抽象意義上的像素,程序用它來(lái)定義界面元素。它作為一個(gè)與實(shí)際密度無(wú)關(guān)的單位,幫助程序員構(gòu)建一個(gè)布局方案(界面元素的寬度,高度,位置)。
一個(gè)與密度無(wú)關(guān)的像素,在邏輯尺寸上,與一個(gè)位于像素密度為 160DPI的屏幕上的像素是一致的,這也是Android平臺(tái)所假定的默認(rèn)顯示設(shè)備。在運(yùn)行的時(shí)候,平臺(tái)會(huì)以目標(biāo)屏幕的密度作為基準(zhǔn),“透明地”處理所有需要的DIP縮放操作。要把密度無(wú)關(guān)像素轉(zhuǎn)換為屏幕像素,可以用這樣一個(gè)簡(jiǎn)單的公式: pixels = dips * (density / 160)。舉個(gè)例子,在 DPI為 240的屏幕上, 1個(gè) DIP等于 1.5個(gè)物理像素。我們強(qiáng)烈推薦你用 DIP來(lái)定義你程序的界面布局,因?yàn)檫@樣可以保證你的 UI在各種分辨率的屏幕上都可以正常顯示。
圖表形式
術(shù)語(yǔ)
說(shuō)明
備注
Screen size(屏幕尺寸)
指的是手機(jī)實(shí)際的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸
摩托羅拉milestone手機(jī)是3.7英寸
Aspect Ratio(寬高比率)
指的是實(shí)際的物理尺寸寬高比率,分為long和nolong
Milestone是16:9,屬于long
Resolution(分辨率)
和電腦的分辨率概念一樣,指手機(jī)屏幕縱、橫方向像素個(gè)數(shù)
Milestone是854*480
DPI(dot per inch)
每英寸像素?cái)?shù),如120dpi,160dpi等,假設(shè)QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160
可以反映屏幕的清晰度,用于縮放UI的
Density(密度)
屏幕里像素值濃度,resolution/Screen size可以反映出手機(jī)密度
Density-independent pixel (dip)
指的是邏輯密度計(jì)算單位,dip和具體像素值的對(duì)應(yīng)公式是dip/pixel=dpi值/160
支持的屏幕分辨率范圍
1.5及更早版本的 Android系統(tǒng),在設(shè)計(jì)的時(shí)候假定系統(tǒng)只會(huì)運(yùn)行在一種分辨率的設(shè)備上—— HVGA( 320× 480)分辨率,尺寸為 3.2寸。由于系統(tǒng)只能工作在一種屏幕上,開(kāi)發(fā)人員就可以針對(duì)那個(gè)屏幕來(lái)編寫(xiě)自己的程序,而無(wú)需去考慮程序在其他屏幕上的顯示問(wèn)題。
但自從 Android 1.6以來(lái),系統(tǒng)引入了對(duì)多種尺寸、多種分辨率屏幕的支持,以此滿足擁有各種配置的新平臺(tái)的運(yùn)行需求。這就意味著開(kāi)發(fā)人員在針對(duì) Android 1.6或更新版系統(tǒng)開(kāi)發(fā)程序的時(shí)候,需要為自己的程序在多種分辨率的屏幕上良好顯示作出額外的設(shè)計(jì)。
為了簡(jiǎn)化程序員面在對(duì)各種分辨率時(shí)的困擾,也為了具備各種分辨率的平臺(tái)都可以直接運(yùn)行這些程序, Android平臺(tái)將所有的屏幕以密度和分辨率為分類方式,各自分成了三類:
·三種主要的尺寸:大,正常,?。?div style="height:15px;">
·三種不同的密度:高( hdpi),中( mdpi)和低( ldpi)。
如果需要的話,程序可以為各種尺寸的屏幕提供不同的資源(主要是布局),也可以為 各種密度的屏幕提供不同的資源(主要是位圖)。除此以外,程序不需要針對(duì)屏幕的尺寸或者密度作出任何額外的處理。在執(zhí)行的時(shí)候,平臺(tái)會(huì)根據(jù)屏幕本身的尺寸 與密度特性,自動(dòng)載入對(duì)應(yīng)的資源,并把它們從邏輯像素( DIP,用于定義界面布局)轉(zhuǎn)換成屏幕上的物理像素。
下表列出了 Android平臺(tái)支持的屏幕中一些比較常用的型號(hào),并顯示了系統(tǒng)是如何把它們分類到不同的屏幕配置里的。有些屏幕分辨率并不在下面的列表上,但系統(tǒng)仍會(huì)把它們歸入下列的某一個(gè)類型中。
低密度( 120), ldpi 中密度( 160), mdpi 高密度( 240), hdpi
小 屏幕 · QVGA( 240× 320),2.6~ 3.0寸
普通 屏幕 · WQVGA( 240×400), 3.2~ 3.5寸
· FWQVGA( 240×432), 3.5~ 3.8寸 · HVGA( 320× 480),3.0~ 3.5寸 · WVGA( 480× 800),3.3~ 4.0寸
· FWVGA( 480×854), 3.5~ 4.0寸
大 屏幕
· WVGA( 480× 800),4.8~ 5.5寸
· FWVGA( 480×854), 5.0~ 5.8寸
如上表所示,所有分辨率的屏幕,都圍繞在基準(zhǔn)屏幕 周?chē)鶞?zhǔn)屏幕在分類中,為“正?!背叽纾c“中”密度。之所以用 HVGA屏幕作為基準(zhǔn)屏幕,是因?yàn)樗嗅槍?duì) Android 1.5或更早的程序都是針對(duì)這片屏幕所寫(xiě)的(因?yàn)橹恢С诌@一片),比如 T-Mobile G1。
雖然系統(tǒng)支持上面 9種不同配置 的屏幕,但你并不一定需要為它們都提供各自不同的資源。系統(tǒng)已經(jīng)提供了足夠魯棒(就是在各種惡劣環(huán)境下正常工作,對(duì)環(huán)境變化不敏感)的兼容特性,用于在各 種不同的屏幕上良好顯示你的程序。這在下面的文檔中會(huì)詳細(xì)描述,如果你需要更多的資料,請(qǐng)查看“與屏幕無(wú)關(guān)的最佳實(shí)踐”。
單位:像素
WVGA854: 854*480
WVGA800: 800*480
HVGA: 640*480 QVGA: 320*240
WQVGA432:432*240
WQVGA400:400*240
Android3.0 WXGA:800*1280
DVGA960(640x960, high density, normal screen )
QVGA (240x320, low density, small screen)
WQVGA (240x400, low density, normal screen)
FWQVGA (240x432, low density, normal screen)
HVGA (320x480, medium density, normal screen)
WVGA800 (480x800, high density, normal screen)
WVGA854 (480x854 high density, normal screen)
Android中圖標(biāo)尺寸:
AndroidManifest.xml中指定圖標(biāo),名字不一定非叫icon
<application android:icon="@drawable/icon" android:label="@string/app_name">
2.0以后有三種尺寸,分別為36*36/48*48/72*72
你會(huì)看到drawable-hdpi/drawable-ldpi/drawable-mdpi不同的目錄用來(lái)存儲(chǔ)不同尺寸的圖標(biāo),在AndroidManifest.xml中只需要寫(xiě)@drawable/icon就可以,它會(huì)根據(jù)屏幕分辨率去找不同目錄下的圖標(biāo)
hdpi里面主要放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)
mdpi里面主要放中等分辨率的圖片,如HVGA (320x480)
ldpi里面主要放低分辨率的圖片,如QVGA (240x320)
類型 hdpi mdpi ldpi
ICON 72*72 48*48 36*36
Notification圖標(biāo) 48*48 32*32 24*24
標(biāo)簽Tab圖標(biāo) 48*48 32*32 24*24
icon 36*36 48*48 72*72
Android的icon尺寸
在運(yùn)行時(shí),程序?yàn)樽罴扬@示效果提供了三種方法:
1.圖片縮放
基于當(dāng)前屏幕的 精度,平臺(tái)自動(dòng)加載任何未經(jīng)縮放的限定尺寸和精度的圖片。如果圖片不匹配,平臺(tái)會(huì)加載默認(rèn)資源并且在放大或者縮小之后可以滿足當(dāng)前界面的顯示要求。例如, 當(dāng)前為高精度屏幕,平臺(tái)會(huì)加載高精度資源(如圖片),如果沒(méi)有,平臺(tái)會(huì)將中精度資源縮放至高精度。
2.自動(dòng)定義像素尺寸和位置
如果程序不支持多種精度屏幕,平臺(tái)會(huì)自動(dòng) 定義像素絕對(duì)位置和尺寸值等,這樣就能保證元素能和精度160的屏幕上一樣能顯示出同樣尺寸的效果。例如,要讓W(xué)VGA高精度屏幕和傳統(tǒng)的HVGA 屏 幕一樣顯示同樣尺寸的圖片,當(dāng)程序不支持時(shí),系統(tǒng)會(huì)對(duì)程序慌稱屏幕分辨率為320×533,在(10,10)到(100,100)的區(qū)域內(nèi)繪制圖形完成之 后,系統(tǒng)會(huì)將圖形放大到(15,15)到(150,150)的屏幕顯示區(qū)域。
3.兼 容更大尺寸的屏幕
當(dāng)前屏幕超過(guò)程序所支持屏幕的上限時(shí),定義supports- screens元素,這樣超出顯示的基準(zhǔn)線時(shí),平臺(tái)在此顯示黑色的背景圖。例如,WVGA 中精度屏幕上,如程序不支持這樣的大屏幕,系統(tǒng)會(huì)謊 稱是一個(gè)320×480的,多余的顯示區(qū)域會(huì)被填充成黑色。
但為了達(dá)到最佳的顯示效 果,最好的方法還是設(shè)計(jì)多套圖片。那就有必要對(duì)于所有的屏幕依據(jù)精度值進(jìn)行分級(jí)(高中低),之后再設(shè)計(jì)三套icon:
先為主流的中精度屏 幕(HVGA)設(shè)計(jì)一套icon,確定圖片的像素尺寸。
為高精度屏幕將圖片放大到150%,為低精度屏幕將圖片縮小至75%。
將這三套資 源放置到程序的三個(gè)文件夾下 :res/drawable-mdpi/ 、res/drawable-hdpi/、 res/drawable- ldpi/。程序在運(yùn)行時(shí),平臺(tái)會(huì)根據(jù)屏幕的精度調(diào)取合適的icon。
設(shè)計(jì)指南
Android標(biāo)準(zhǔn)icon
Launcher Icon是程序主界面上的功能圖標(biāo),Android對(duì)于各個(gè)icon的風(fēng)格有一定的要求:
符合當(dāng)下的流行趨勢(shì),避免過(guò)度使用隱喻。
高 度簡(jiǎn)化和夸張,小尺寸圖標(biāo)也能易于識(shí)別,不宜太復(fù)雜。
嘗試抓住程序的主要特征,比如音像作為音樂(lè)的icon。
使用自然的輪廓和形狀,看起 來(lái)幾何化和有機(jī)化,不失真實(shí)感。
Icon采用前視角,幾乎沒(méi)有透視,光源在頂部。
不光滑但富有質(zhì)感。
正確和錯(cuò)誤的icon
另外,所有的icon都有文字標(biāo)簽,不要在設(shè)計(jì)時(shí)把文字也放到icon中。
Launcher Icon通常是一個(gè)較大的標(biāo)準(zhǔn)圖標(biāo)中包含一個(gè)小圖標(biāo),使用一個(gè)中性色彩和一個(gè)主要色彩,并保持高度的對(duì)比,不宜過(guò)度飽和。
推薦色值
尺寸和定位
Launcher icons要有多樣化的形狀和樣式,但又要形成統(tǒng)一的視覺(jué)風(fēng)格,其尺寸和定位也用統(tǒng)一:
(Full Asset)紅色邊框?yàn)閳D標(biāo)尺寸
(Icon) 藍(lán)色邊框是圖形尺寸,比圖標(biāo)尺寸稍小,圖形之外的空間用于顯示陰影和特殊效果。
(Square Icon)橙色邊框是另外一種圖形尺寸。兩種類型的圖形尺寸可以達(dá)到統(tǒng)一的視覺(jué)權(quán)重。
Icon dimensions for high-density (hdpi) screens:
Full Asset: 72 x 72 px
Icon: 60 x 60 px
Square Icon: 56 x 56 px
Icon Dimensions for medium-density (mdpi) screens:
Full Asset: 48 x 48 px
Icon: 40 x 40 px
Square Icon: 38 x 3
Icon Dimensions for low-density (ldpi) screens:
Full Asset: 36 x 36 px
Icon: 30 x 30 px
Square Icon: 28 x 28 px
模板
下載
Android的標(biāo)準(zhǔn)圖標(biāo)模板,在此基礎(chǔ)上繪制icon,后期還要加上陰影效果。
WVGA (高精度) 屏幕的陰影:
Effect: Drop Shadow
Color: #000000
Blend Mode: Multiply
Opacity: 75%
Angle: 90°
Distance: 2px
Spread: 0%
Size: 5px
另外,還有Menu icon 、Status bar icon 、Tab icon、 Dialog icon 和List view icon的設(shè)計(jì)教程請(qǐng)查看
原文吧。
非常詳盡的icon設(shè)計(jì)教程,一個(gè)程序里要放置三套icon,還有Android硬件比較好,不然 內(nèi)存爆掉
參考文章:http://www.cnblogs.com/KiloNet/archive/2011/03/25/1995843.html
http://zlb1986.iteye.com/blog/977621
http://www.devdiv.com/home.php?mod=space&uid=1&do=blog&id=2119
http://www.pocketdigi.com/20100917/112.html
http://ucdchina.com/snap/7166