看到上面這個(gè)標(biāo)題:肯定知道25學(xué)堂這節(jié)課需要跟大家聊的大概主題了吧!
沒錯(cuò),就是Android設(shè)計(jì)規(guī)范當(dāng)中必須了解的四種屏幕尺寸和四種密度分類。為什么只有Android界面上會(huì)產(chǎn)生四種屏幕尺寸和四種密度呢?
主要原因就是安卓android多屏幕的支持機(jī)制。
如今的安卓手機(jī)屏幕很多,層次不齊。最大的1920*1080 最小的還是240*320等等。
中間的跨度很大啊。
目前的主流的就是720*1280 ?1920x1080 ? ?5英寸或者5.5英寸的智能安卓手機(jī)啦。
Android的支持多屏幕機(jī)制即用為當(dāng)前設(shè)備屏幕提供一種合適的方式來(lái)共同管理并解析應(yīng)用資源。
Android平臺(tái)中支持一系列你所提供的指定大?。╯ize-specific),指定密度(density-specific)的合適資源。
四種屏幕尺寸分類:: small, normal, large, and xlarge
四種密度分類: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
Android有個(gè)自動(dòng)匹配機(jī)制去選擇對(duì)應(yīng)的布局和圖片資源
1)界面布局方面
根據(jù)物理尺寸的大小準(zhǔn)備5套布局:
layout(放一些通用布局xml文件,比如界面頂部和底部的布局,不會(huì)隨著屏幕大小變化,類似windos窗口的title bar),
layout-small(屏幕尺寸小于3英寸左右的布局),
layout-normal(屏幕尺寸小于4.5英寸左右),
layout-large(4英寸-7英寸之間),
layout-xlarge(7-10英寸之間)
2)圖片資源方面
需要根據(jù)dpi值準(zhǔn)備5套圖片資源:
drawable:主要放置xml配置文件或者對(duì)分辨率要求較低的圖片
drawalbe-ldpi:低分辨率的圖片,如QVGA (240x320)
drawable-mdpi:中等分辨率的圖片,如HVGA (320x480)
drawable-hdpi:高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)
drawable-xhdpi:至少960dp x 720dp
Android有個(gè)自動(dòng)匹配機(jī)制去選擇對(duì)應(yīng)的布局和圖片資源。
系統(tǒng)會(huì)根據(jù)機(jī)器的分辨率來(lái)分別到這幾個(gè)文件夾里面去找對(duì)應(yīng)的圖片。
在開發(fā)程序時(shí)為了兼容不同平臺(tái)不同屏幕,建議各自文件夾根據(jù)需求均存放不同版本圖片。
四種屏幕尺寸和四種密度的基本概念:
1.屏幕尺寸Screen size
即顯示屏幕的實(shí)際大小,按照屏幕的對(duì)角線進(jìn)行測(cè)量。
為簡(jiǎn)單起見,Android把所有的屏幕大小分為四種尺寸:小,普通,大,超大(分別對(duì)應(yīng):small, normal, large, and extra large).
應(yīng)用程序可以為這四種尺寸分別提供不同的自定義屏幕布局-平臺(tái)將根據(jù)屏幕實(shí)際尺寸選擇對(duì)應(yīng)布局進(jìn)行渲染,這種選擇對(duì)于程序側(cè)是透明的。
2.屏幕長(zhǎng)寬比Aspect ratio
長(zhǎng)寬比是屏幕的物理寬度與物理高度的比例關(guān)系。應(yīng)用程序可以通過使用限定的資源來(lái)為指定的長(zhǎng)寬比提供屏幕布局資源。
3.屏幕分辨率Resolution
在屏幕上顯示的物理像素總和。需要注意的是:盡管分辨率通常用寬x高表示,但分辨率并不意味著具體的屏幕長(zhǎng)寬比。
在Andorid系統(tǒng)中,應(yīng)用程序不直接使用分辨率。
4.密度Density
根據(jù)像素分辨率,在屏幕指定物理寬高范圍內(nèi)能顯示的像素?cái)?shù)量。
在同樣的寬高區(qū)域,低密度的顯示屏能顯示的像素較少,而高密度的顯示屏則能顯示更多的像素。
屏幕密度非常重要,因?yàn)槠渌鼦l件不變的情況下,一共寬高固定的UI組件(比如一個(gè)按鈕)在在低密度的顯示屏上顯得很大, 而在高密度顯示屏上看起來(lái)就很小。
為簡(jiǎn)單起見,Android把所有的屏幕分辨率也分為四種尺寸:小,普通,大,超大(分別對(duì)應(yīng):small, normal, large, and extra large).
應(yīng)用程序可以為這四種尺寸分別提供不同的資源-平臺(tái)將透明的對(duì)資源進(jìn)行縮放以適配指定的屏幕分辨率。
5.設(shè)備獨(dú)立像素Density-independent pixel (dp)
應(yīng)用程序可以用來(lái)定義UI組件的虛擬像素單元,通過密度無(wú)關(guān)的方式來(lái)描述布局尺寸和位置。
一個(gè)設(shè)備獨(dú)立像素相當(dāng)于一個(gè)160 dpi屏幕上的物理像素。
在程序運(yùn)行時(shí),系統(tǒng)根據(jù)屏幕的實(shí)際密度透明的處理任何需要縮放的設(shè)備獨(dú)立像素單元,設(shè)備獨(dú)立像素轉(zhuǎn)換成屏幕實(shí)際像素的換算很簡(jiǎn)單:pixels = dps * (density / 160).
例如在240 dpi的屏幕上,1個(gè)設(shè)備獨(dú)立像素等于1.5物理像素.為確保UI組件在不同的屏幕都能合適的展示,強(qiáng)烈建議使用設(shè)備獨(dú)立像素單元來(lái)定義你的應(yīng)用程序UI。
全站高品質(zhì)素材免費(fèi)下載!