Android 常用限定符

2021-08-24 23:45:30 字數 3731 閱讀 1993

目錄

在安卓3.2之下的適配  限定符

android3.2之後引入的,目前推薦使用的;

為了適配不同螢幕大小的android手機或android平板,有時候就需要利用限定符來為不同的螢幕設定不同的布局檔案。 

android中一些常用的限定符如下所示:

螢幕特性

限定符描述

螢幕尺寸

small

小螢幕normal

基準螢幕

large

大螢幕xlarge

超大螢幕

螢幕密度

ldpi

<=120dpi

mdpi

<= 160dpi

hdpi

<= 240dpi

xhdpi

<= 320dpi

xxhdpi

<= 480dpi

xxhdpi

<= 640dpi(只用來存放icon)

nodpi

與螢幕密度無關的資源.系統不會針對螢幕密度對其中資源進行壓縮或者拉伸

tvdpi

介於mdpi與hdpi之間,特定針對213dpi,專門為電視準備的,手機應用開發不需要關心這個密度值.

螢幕方向

land

橫向port

縱向螢幕寬高比

long

比標準螢幕寬高比明顯的高或者寬的這樣螢幕

notlong

和標準螢幕配置一樣的螢幕寬高比

例如:

res/layout/my_layout.xml              // layout for normal screen size ("default")

res/layout-large/my_layout.xml // layout for large screen size

res/layout-xlarge/my_layout.xml // layout for extra-large screen size

res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation

res/drawable-mdpi/graphic.png // bitmap for medium-density

res/drawable-hdpi/graphic.png // bitmap for high-density

res/drawable-xhdpi/graphic.png // bitmap for extra-high-density

res/drawable-xxhdpi/graphic.png // bitmap for extra-extra-high-density

res/mipmap-mdpi/my_icon.png // launcher icon for medium-density

res/mipmap-hdpi/my_icon.png // launcher icon for high-density

res/mipmap-xhdpi/my_icon.png // launcher icon for extra-high-density

res/mipmap-xxhdpi/my_icon.png // launcher icon for extra-extra-high-density

res/mipmap-***hdpi/my_icon.png // launcher icon for extra-extra-extra-high-density

在一般情況下在layout資料夾下是預設的布局檔案,而在大螢幕裝置上,這個布局檔案可能就不怎麼適用了。

因此,我們可以利用限定符large,在res目錄下新建乙個layout_large資料夾,再新建乙個同名的布局檔案。 

這樣,當程式執行在了大螢幕裝置上時,android就會自動地載入layout_large資料夾下的布局檔案,其他情況下還是會載入layout檔案下的布局檔案。

這樣,當程式執行在不同螢幕大小的手機上時都可以有比較完美的布局了。

有時候我們也不希望由系統來為我們來判斷載入哪個布局,而是希望能夠為之設定乙個臨界值,當螢幕寬度小於臨界值時,載入預設布局,當大於時則載入另乙個專門準備的布局檔案。 

可以在res目錄下新建乙個資料夾,命名為layout_ sw650dp,再將專門準備的同名布局檔案放置在其中。

這樣,當程式執行在螢幕大於650dp的裝置上時,就會載入layout_ sw650dp資料夾下的布局檔案了

螢幕特性

限定符描述

最小寬度限定符

swdp

例如sw600dp, sw720dp

螢幕的最小尺寸,就是螢幕可用區域的最小尺寸,是指螢幕可用高度或寬度的最小值(你可以預設是螢幕的最小寬度).你能用這個限定符確保,無論螢幕方向如何,這個限定符修飾下的布局需要的螢幕最小尺寸是ndp.

例如,如果你的布局在執行時需要的最小螢幕寬度是600dp,則你可以利用這個限定符建立布局資源目錄res/layout-sw600dp.只有當螢幕的最小寬度或最小高度是600dp時,系統才會使用這些布局檔案或者資源檔案.最小螢幕寬度是固定裝置的特有螢幕尺寸,當螢幕方向發生變化時,裝置的最小寬度值不變.

裝置的最小寬度值要考慮螢幕的尺寸和系統ui.例如,如果在螢幕上有一些系統持久化ui元素,則系統的最小寬度值要比實現的螢幕尺寸小一些,因為這些系統的ui元素你的應用是無法使用到的.

當你使用之前的廣義限定符是,你可以定義連續的一系列限定符.用最小寬度來決定廣義螢幕尺寸是有意義的,是因為寬度是影響你ui設計的關鍵因素.ui在豎直方向上會經常滾動,但是在水平方向上往往是固定的布局.可見不論是適配手機或者平板,寬度往往都是布局的關鍵因素.因此,你需要關心你手機上的最小寬度值.

螢幕可用寬度

wdpexamples:

w720p

w1024p

指定資源使用時需要的最小寬度.當螢幕方向發生變化時,系統會調整這個值,使其始終為你ui顯示的寬度.

這個屬性經常被用來判斷當前是否需要顯示多屏布局,因為哪怕使用者當前正在使用平板,你也可能不希望使用者在平板豎屏時顯示多個螢幕的布局樣式.這時,你就可以使用這個限定符來標明你布局需要的最小寬度

螢幕可用高度

hdpexamples:

h720dp

h1024dp

etc.

標明資源使用時需要的最小高度.當螢幕發生旋轉時,系統會自動選擇當前大的一方作為高度值.大部分應用很少需要這個限定符,因此不做過多講解

在不考慮螢幕方向只關注布局最小空間的前提下,使用sw的方式更加簡單.

例如:

res/layout/main_activity.xml #手機布局 

res/layout-sw600dp/main_activity.xml #7寸平板布局

res/layout-sw720dp/main_activity.xml #10寸平板布局

補充:

裝置寬度的dp計算方法:

dp = 螢幕畫素寬度/(螢幕畫素密度/160)   160是基準螢幕畫素密度    這個用來計算以上的sw後面的數值

通用公式:

dp = px/(dpi/160)

px = dp*(dpi/160)

android的限定符

1.在res下建立乙個layout large的資料夾,在裡面重新建立乙個activity main.xml的布局檔案 當大螢幕手機就會去載入activity main.xml的布局,小螢幕的還是載入原來的activity main.xml布局 限定符型別 根據螢幕大小 small 小屏 norma...

Android 多種限定符

android 專案給res目錄中的子目錄加上 限定符 可以給不同裝置提供不同的資源以及布局。寬高度限定符 android3.2之後引入 最小寬度限定符 swdp 例如 sw600dp,sw720dp 螢幕可用寬度 wdp 例如 w720p,w1024p 螢幕可用高度 hdp 例如 h720dp,h...

引用限定符

通常,我們在乙個物件上呼叫成員函式,而不管該物件是乙個左值還是乙個右值。例如 string s1 a value s2 another auto n s1 s2 find a 此例中,我們在乙個string右值上呼叫find成員,該string右值是通過連線兩個 string 而得到的。有時,右值的...