React Native移动开发实战-4-Android平台的适配
打開Android開發(fā)工具Android Studio,選擇菜單 Open an existing AndroidStudio project,打開ch04項(xiàng)目的android文件夾,如圖5.8所示。
圖5.8 Android原生項(xiàng)目結(jié)構(gòu)
從Android的項(xiàng)目結(jié)構(gòu),想必讀者可以隱約感受到:Android適配是基于文件夾的,不同分辨率和尺寸的屏幕會自動適配相應(yīng)的文件夾下的布局或資源文件。但是,想要進(jìn)一步理解Android的適配,有必要先了解Android適配的一些基本概念:
- 屏幕尺寸:屏幕尺寸是指手機(jī)屏幕對角線的英寸數(shù)。
- 屏幕分辨率:屏幕分辨率是指屏幕寬高像素數(shù)。
- 屏幕像素密度:屏幕像素密度是指手機(jī)屏幕對角線上單位英寸內(nèi)的像素數(shù)。
另外,編寫代碼時常用的尺寸單位有:
- px:像素。
- dp(dip的縮寫):規(guī)定密度為160的屏幕上,1像素對應(yīng)的尺寸為1dp。320密度的屏幕上,1像素對應(yīng)0.5dp,以此類推。在密度為160的屏幕上,1英寸有160個像素,那么
px對應(yīng)的尺寸=1/160英寸。所以說dp是個物理尺寸,跟像素?zé)o關(guān)。所以,100dp的尺寸在不同手機(jī)上顯示出來,物理尺寸看上去基本是一樣的。 - sp(Scale-independentPixel),即與縮放無關(guān)的抽象像素。sp和dp很類似但唯一的區(qū)別是,Android系統(tǒng)允許用戶自定義文字尺寸大小(小、正常、大、超大等等),當(dāng)文字尺寸是“正常”時,1sp=1dp=0.00625英寸,而當(dāng)文字尺寸是“大”或“超大”時,1sp>1dp=0.00625英寸。
在創(chuàng)建項(xiàng)目的時候,會自動創(chuàng)建不同的mipmap或layout文件夾(在不同像素密度上提供不同的圖片),文件夾的后綴表明了該布局或資源的像素密度(dp)范圍,對應(yīng)關(guān)系如下參見5.1。
后綴 像素密度(dp)的范圍
mdpi 120dp ~ 160dp
hdpi 160dp ~ 240dp
xhdpi 240dp ~ 320dp
xxhdpi 320dp ~ 480dp
xxxhdpi 480dp ~ 640dp
對于上述Android項(xiàng)目中的mipmap文件夾,Android的適配機(jī)制是這樣的:系統(tǒng)會先到后綴與設(shè)備匹配的mipmap目錄下找對應(yīng)的圖片,當(dāng)找不到的時候會去“更高”一級的目錄去找,再找不到,繼續(xù)往高一級的找,如果還是找不到就退而求其次去低一級的找,依次類推。
例如:在密度為xxhdpi的手機(jī)上運(yùn)行Android App,首先會在drawable-xxhdpi目錄下尋找圖片資源,找不到再去drawable-xxxhdpi找,如果沒有比drawable-xxxhdpi更高的,則再找不到就去drawable-xhdpi找,接著drawable-hdpi,直到找到對應(yīng)的圖片資源,當(dāng)找到后,系統(tǒng)會按密度對圖片做縮放處理,然后再顯示到屏幕上,所以如果圖片放的目錄不正確的話,有可能造成圖片因縮放而變得模糊。
同樣,用于存放布局文件的layout目錄也是通過后綴名來適配的,只不過layout文件夾通常添加設(shè)備分辨率作為后綴,如:layout-1280x720、layout-1920x1080以及l(fā)ayout-land-1280x720等。
不難看出,以上適配方法和上述iOS開發(fā)中的Size Class是類似的:用于分類適配.
和我一起學(xué)吧,《React Native移動開發(fā)實(shí)戰(zhàn)》
總結(jié)
以上是生活随笔為你收集整理的React Native移动开发实战-4-Android平台的适配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据安全分析“架构”
- 下一篇: Android开发经验实战总结