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