Android設計中的尺寸問題

來源:互聯網
上載者:User

標籤:切圖   for   sig   des   ade   parent   pretty   獨立   常量   

Android把螢幕大小分成四種:small, normal, large, xlarge;
螢幕密度分成:low(ldpi), medium(mdpi), high(hdpi), extra high(xhdpi);各個螢幕密度之間的關係例如以下:

密度名稱 密度的參考值(dpi) 關係 相應的螢幕解析度
xxxhdpi 640dpi
xxhdpi 480dpi
xhdpi 320dpi 2.0
hdpi 240dpi 1.5 800*480
mdpi 160dpi 1.0 (基準) 480*320
ldpi 120dpi 0.75 320*240

dpi(dot per inch):每英吋像素點的個數,1英寸=2.54厘米,平時大家說的4.3英寸、4.5英寸事實上是螢幕對角線的長度。

dp(density independent pixel):獨立密度像素,使用dp作為單位設定控制項,無論螢幕或dpi多大,其顯示效果都是一致的;假設使用px,則會出現顯示不一致的效果。比如對於長度為160px的線段,在密度為160dpi。寬度為1英寸的螢幕上會填滿整個螢幕;而對於密度為320dpi,寬度相同為1英寸的螢幕上。僅僅會填滿半個螢幕。即對於兩個物理尺寸相同,可是dpi不同的螢幕,其顯示效果的差異會非常大。

pixel、dp、dpi的關係例如以下:

px = dp* (dpi/160)

原則1:在給Android介面切圖時。一般採用160dpi作為基準。由於以160dip作為基準,僅僅要切圖的長和寬的像素點個數是4的倍數,則xhdpi下該圖在長寬上的像素個數能夠乘以2,hdpi下乘以1.5,ldpi下乘以0.75。結果得到的長寬上的像素點個數都是整數。假設以240dpi作為基準,則240下切圖長寬的像素點個數須要是3的倍數,相應的在xhdpi下乘以1.333333,mdpi下乘以0.66666,ldpi下除以2;這樣會得到非整形的像素點個數。

QVGA, WQVGA的螢幕密度是:120
HVGA的螢幕密度是:160
WVGA的螢幕密度是:240
當中。ldpi的資源不是必須的,當提供hdpi的資源時。系統會自己主動將hdpi的資源縮小一半來適配ldpi的螢幕

註:螢幕密度和螢幕解析度是不同的概念,通過螢幕解析度和尺寸,能夠計算出螢幕密度;比如解析度為320*480,螢幕尺寸為3.2英寸(對角線長度)。則螢幕密度為:

Density = \frac{\sqrt{320^2+480^2}}{3.2}">

註: dip就是dp

sp(scale independent pixel):縮放無關像素。跟dp相似,唯一不同的是。該單位會受系統字型設定的影響,通經常使用在字型上。Android規範中規定的經常使用字型大小:

DisplayMetrics類

DisplayMetrics是用於描寫敘述螢幕相關參數的類。訪問DisplayMetrics的方法:

DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay.getMetrics(metrics);

然後就能夠訪問metrics變數中的各個常量、欄位和方法了

  • density : 螢幕密度
  • densityDpi: 螢幕密度,以dpi為單位
  • heightPixels:螢幕高度,以像素為單位
  • widthPixels:螢幕寬度,以像素為單位
  • xdpi:螢幕X方向的螢幕密度
  • ydpi:螢幕Y方向的螢幕密度
市場資料

排名前幾位的螢幕解析度:

解析度 百分比 螢幕密度
1280 * 720 29.2% 267 ~ 293(hdpi, xhdpi)
800 * 480 18.5% 233 ~ 266(hdpi)
854 * 480 13.8% 195 ~ 217(mdpi, hdpi)
1920 * 1080 10.6% 367 ~ 400(xhdpi)
960 * 540 10% 220 ~ 244(hdpi)
480 * 320 4.1%
1184 * 720 3%

資料來源:http://www.umindex.com/devices/android_resolutions

相關連結
  1. https://developer.android.com/design/style/devices-displays.html
  2. http://developer.android.com/training/basics/supporting-devices/screens.html
  3. http://www.25xt.com/allcode/4269.html

Android設計中的尺寸問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.