android UI設計時須要注意遵循的設計原則

來源:互聯網
上載者:User

標籤:

1、Android裝置螢幕尺寸分布

首先看一下各種螢幕的尺寸和螢幕密度劃分。是各種螢幕尺寸相應的範圍:

從能夠看出,相應normal尺寸的螢幕範圍集中在常見的3到5寸屏之間,large尺寸相應的就主要是5到7寸的nottpad之類的裝置,比如三星的Note和Nexus7平板等,再網上走就是平板電腦了。

接下來是螢幕密度(dpi),須要說明的時。平時所說的螢幕解析度事實上不能作為螢幕適配的根據,應該根據螢幕密度和螢幕尺寸來換算,螢幕密度是指每寸螢幕內容納的像素數,螢幕密度從ldpi到xhdpi分別相應為120dpi、160dpi、240dpi、320dpi,螢幕密度越高、解析度越高、螢幕尺寸越小就產生了視網膜螢幕。

在螢幕適配中,Google推薦針對mdpi(160dpi)進行設計,然後依照比例進行縮放。這樣的方法主要針對位元影像(某些不規則圖片,無法展開的圖片,其它建議使用.9圖),以mdpi作為baseline。並以3:4:6:8的比例縮放:

2、Android資源檔

drawable-hdpi裡面存放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
drawable-mdpi裡面存放中等解析度的圖片,如HVGA (320x480)
drawable-ldpi裡面存放低解析度的圖片,如QVGA (240x320)

3、Android上常見度量單位

px(像素):螢幕上的點,絕對長度。與硬體相關。

in(英寸):長度單位。

mm(毫米):長度單位。

pt(磅):1/72英寸,point。

dp(與密度無關的像素):一種基於螢幕密度的抽象單位。

在每英寸160點的顯示器上,1dp = 1px。

dip:Density-independent pixel,同dp同樣。

sp:在dp的基礎上。還與比例無關,個人理解為是一個向量圖形單位。


在xml中定義大小。建議TextView使用sp,其它使用dp

相應關係

                Android手機螢幕標準       相應表徵圖尺寸標準   螢幕密度

xhdpi               1280*720                               96*96             320

hdpi                 480*800                               72*72             240

mdpi                480*320                               48*48             160

ldpi                  320*240                                36*36             120

模擬器上不同解析度全部相應的資訊: 

QVGA : {density=0.75, width=240, height=320, scaledDensity=0.75, xdpi=120.0, ydpi=120.0}
HVGA :  {density=1.0, width=320, height=480, scaledDensity=1.0, xdpi=160.0, ydpi=160.0}
WVGA : {density=1.5, width=480, height=800, scaledDensity=1.5, xdpi=240.0, ydpi=240.0}

當中,density為顯示的邏輯解析度;width及height就為螢幕解析度(為絕對寬度與高度),與fields中的widthPixels及 heightPixels一致;scaleDensity與density一致;xdpi及ydpi為x方向與y方向的像素密度。

4、怎樣計算密度(dpi)

1.標準是240*320畫在1.5*2平方inch上。那麼像每平方英寸有240*320/(1.5*2)=25600點。也就是一平方英寸的像素點為25600。所以dpi取為它的平方根160;假設你的dpi是120,那麼它的密度就是0.75.

2. 密度不僅僅是與width有關,還與height有關,所以無論width是1.8還是1.3。它的密度都有可能是1。比方width是1.8。僅僅要它的 height是3/1.8的話,假設pixel為240*320的話。它的密度仍舊是1;相同假設width為1.3。僅僅要它的 height為3/1.3的話,像素點為240*320,則密度也是1.

3.320*480/(1.5*2)得到單位平方英寸的點為51200,所以單位平方英寸是240*320畫在1.5*2螢幕的2倍。

可是這是平方英寸啊,算密度的時候要開平方的啊,所以應該是2開平方,是1.414吧,大緻密度為1.5。

5、px與dip的關係

Android中。在160dpi (mdpi)中, 1 dip= 1 px;

以此類推,在120dpi(ldpi)中, 1 dip = 0.75px;

                  在240dpi (hdpi)中,  1 dip = 1.5px;

                  在320dpi(xhdpi)中, 1dip = 2px。

6、怎樣做到與密度無關

  假設螢幕密度為160,這時dp和sp和px是一樣的。1dp=1sp=1px。但假設使用px作單位。假設螢幕大小不變(假設還是3.2寸),而屏 幕密度變成了320。

那麼原來TextView的寬度設成160px。在密度為320的3.2 寸螢幕裡看要比在密度為160的3.2寸螢幕上看短了一半。但假設設定成160dp或160sp的話。系統會自己主動將width屬性值設定成320px的。 也就是160 * 320 / 160。當中320 / 160可稱為密度比例因素。也就是說,假設使用dp和sp,系統會依據螢幕密度的變化自己主動進行轉換。官方文檔總結的計算公式為:pixels = dps * (density /160).

使用dip作為View的單位,這樣就能夠同一時候相容各種不同的解析度。不會造成UI的不可相容。




android UI設計時須要注意遵循的設計原則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.