當前位置:編程學習大全網 - 源碼下載 - Android原生和Flutter使用過程的差異對比(壹)

Android原生和Flutter使用過程的差異對比(壹)

1、界面搭建過程中各種大小單位

Android:通常采用dp設置View寬高(和px像素的換算關系是dp值 × density邏輯密度),sp設置字體大小(會隨著系統字體設置的大小而改變)。

Flutter:沒有具體的大小單位描述, 和尺寸相關的MediaQueryData類中較為重要的幾個值如下:

(壹)devicePixelRatio(設備像素比),對應Android中的density

(二)size.width和height,設備的邏輯像素寬高,並非絕對物理像素(例如iphone6的設備像素比是2,通過size獲取到的邏輯像素寬高為375 ?×? 667,實際物理像素則為750 × 1334,即分辨率)

(三)textScaleFactor:單位邏輯像素字體像素數,默認為1,設置成1.5則字體變大50%,如果想讓Text組件的字體大小不隨系統設置的變化而變化,需將這個值設定成固定值1

UI適配解決方案:

1、采用ScreenUtil插件,初始化時候傳入設計稿大小,當發現壹屏顯示的大小有差異時候采用插件提供的setWidth和setHeight來設置具體的寬高(會根據設計稿大小和實際設備邏輯像素寬高比進行縮放)。

2、TextButton、Text等按鈕和文本組件,通過設置字體大小和內邊距來控制整體的寬高,而非固定其寬高。

2、本地資源文件的引用方式

Android:圖片通常存放在res/mipmap或res/drawable下,不同分辨率對應不同後綴名,如mipmap-hdpi、mipmap-xhdpi

Flutter:需在pubspec.yaml中配置,如下圖所示

如果只配置父級目錄例如(assets/images/common_status)則無法再存放不同尺寸的圖片。不同尺寸的圖片需建立對應的2.0x、3.0x目錄後存放,設備在讀取時候會自行根據分辨率去找對應的圖片,弊端是每有壹張圖片就需在pubspec.yaml文件中聲明這些圖片

  • 上一篇:央行送大禮千股漲停爽約不是機構腦子進水而是市場轉弱
  • 下一篇:學安卓開發需要學java到什麽程度
  • copyright 2024編程學習大全網