Android屏幕適配

1、 android開(kāi)發(fā)時(shí)會(huì)涉及到多屏幕適應(yīng)的問(wèn)題。

如果你的開(kāi)發(fā)環(huán)境的sdk版本是android3.2以及以上的版本便可以用這個(gè)sw屬性對(duì)設(shè)備進(jìn)行區(qū)分。600dp的含義是:代表這個(gè)設(shè)備的最短的那一邊。以我手上的平板為例(分辨率是1024x720,密度是1)。求這個(gè)設(shè)備的最短邊??赡苡腥苏f(shuō)是720。這個(gè)答案是不正確的。答案是768,這個(gè)答案隨著設(shè)備不同而不同。

獲取設(shè)備的最短邊的代碼是:


Configuration config = getResources().getConfiguration();

int  smallestScreenWidth = config.smallestScreenWidthDp;

這樣就獲取了設(shè)備的最短邊了。這個(gè)時(shí)候拿smallestScreenWidth 與600想比較就可以知道該設(shè)備能否讀取里面的資源了。

2、api文檔的說(shuō)明

先解釋幾個(gè)概念:

1、dpi(dot per inch),

即每英寸像素所有的android設(shè)備都會(huì)被分成120(low)、160(medium)、240(high)、320(xhigh)四種,后來(lái)隨著市場(chǎng)上android設(shè)備越來(lái)越多,google官方又增加了213(Added in API level13),480(Added in API level16),640(Added in API level18),三種dpi。比如320x240分辨率的屏幕物理尺寸2英寸*1.5英寸,dpi=160;

2、dp或dip(density-independent pixel)

邏輯密度計(jì)算單位,與像素的換算方式為px=dp*(dpi/160)。

在android3.2以前,所有的資源文件都有相應(yīng)的xhdpi,hdpi,mdpi,ldpi四種文件來(lái)對(duì)應(yīng),android3.2以后,為了提供更精準(zhǔn)的對(duì)布局文件的控制,可以通過(guò)為資源文件(res目錄下文件)增加后綴來(lái)指定該文件夾里的xml布局文件或color.xml,string.xml是為哪種大小的屏幕使用。

第一種: sw<N>dp

如layout-sw600dp, values-sw600dp

這里的sw代表smallwidth的意思,橫豎屏切換時(shí)較小的screenWidthDp。當(dāng)你設(shè)備的smallestScreenWidth值大約N時(shí),屏幕就會(huì)自動(dòng)到帶sw600dp后綴的資源文件里去尋找相關(guān)資源文件,每個(gè)屏幕都是固定的,不會(huì)隨著屏幕橫向縱向改變而改變。

第二種后綴: w<N>dp

如layout-w600dp, values-w600dp

帶這樣后綴的資源文件的資源文件制定了getResources().getConfiguration().screenWidthDp大于Ndp的情況下使用該資源文件,但它和sw<N>dp不同的是,當(dāng)屏幕橫向縱向切換時(shí),screenWidthDp是變化的,以變化后的寬度來(lái)與N相比,看是否使用此資源文件下的資源。

第三種后綴: h<N>dp

如layout-h600dp, values-h600dp

這個(gè)后綴的使用方式和w<N>dp一樣,隨著屏幕橫縱向的變化,屏幕高度也會(huì)變化,根據(jù)變化后的高度值來(lái)判斷是否使用h<N>dp ,但這種方式很少使用,因?yàn)槠聊辉诳v向上通常能夠滾動(dòng)導(dǎo)致長(zhǎng)度變化,不像寬度那樣基本固定,因?yàn)檫@個(gè)方法靈活性不是很好,google官方文檔建議盡量少使用這種方式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容