React Native移動開發實戰-4-Android平臺的適配

打開Android開發工具Android Studio,選擇菜單 Open an existing AndroidStudio project,打開ch04項目的android文件夾,如圖5.8所示。android

圖片描述

圖5.8 Android原生項目結構工具


從Android的項目結構,想必讀者能夠隱約感覺到:Android適配是基於文件夾的,不一樣分辨率和尺寸的屏幕會自動適配相應的文件夾下的佈局或資源文件。可是,想要進一步理解Android的適配,有必要先了解Android適配的一些基本概念:佈局

  • 屏幕尺寸:屏幕尺寸是指手機屏幕對角線的英寸數。
  • 屏幕分辨率:屏幕分辨率是指屏幕寬高像素數。
  • 屏幕像素密度:屏幕像素密度是指手機屏幕對角線上單位英寸內的像素數。

另外,編寫代碼時經常使用的尺寸單位有:開發工具

  • px:像素。
  • dp(dip的縮寫):規定密度爲160的屏幕上,1像素對應的尺寸爲1dp。320密度的屏幕上,1像素對應0.5dp,以此類推。在密度爲160的屏幕上,1英寸有160個像素,那麼
    px對應的尺寸=1/160英寸。因此說dp是個物理尺寸,跟像素無關。因此,100dp的尺寸在不一樣手機上顯示出來,物理尺寸看上去基本是同樣的。
  • sp(Scale-independentPixel),即與縮放無關的抽象像素。sp和dp很相似但惟一的區別是,Android系統容許用戶自定義文字尺寸大小(小、正常、大、超大等等),當文字尺寸是「正常」時,1sp=1dp=0.00625英寸,而當文字尺寸是「大」或「超大」時,1sp>1dp=0.00625英寸。

在建立項目的時候,會自動建立不一樣的mipmap或layout文件夾(在不一樣像素密度上提供不一樣的圖片),文件夾的後綴代表了該佈局或資源的像素密度(dp)範圍,對應關係以下參見5.1。spa

後綴 像素密度(dp)的範圍
mdpi 120dp ~ 160dp
hdpi 160dp ~ 240dp
xhdpi 240dp ~ 320dp
xxhdpi 320dp ~ 480dp
xxxhdpi 480dp ~ 640dp圖片


對於上述Android項目中的mipmap文件夾,Android的適配機制是這樣的:系統會先到後綴與設備匹配的mipmap目錄下找對應的圖片,當找不到的時候會去「更高」一級的目錄去找,再找不到,繼續往高一級的找,若是仍是找不到就退而求其次去低一級的找,依次類推。ip

例如:在密度爲xxhdpi的手機上運行Android App,首先會在drawable-xxhdpi目錄下尋找圖片資源,找不到再去drawable-xxxhdpi找,若是沒有比drawable-xxxhdpi更高的,則再找不到就去drawable-xhdpi找,接着drawable-hdpi,直到找到對應的圖片資源,當找到後,系統會按密度對圖片作縮放處理,而後再顯示到屏幕上,因此若是圖片放的目錄不正確的話,有可能形成圖片因縮放而變得模糊。資源

一樣,用於存放佈局文件的layout目錄也是經過後綴名來適配的,只不過layout文件夾一般添加設備分辨率做爲後綴,如:layout-1280x720、layout-1920x1080以及layout-land-1280x720等。開發

不難看出,以上適配方法和上述iOS開發中的Size Class是相似的:用於分類適配.it

和我一塊兒學吧,《React Native移動開發實戰》
圖片描述
圖片描述

相關文章
相關標籤/搜索