一区二区三区欧美日韩-一区二区三区欧美-一区二区三区免费在线视频-一区二区三区免费在线观看-久久精品店-久久精品第一页

歡迎您光臨深圳塔燈網絡科技有限公司!
電話圖標 余先生:13699882642

網站百科

為您解碼網站建設的點點滴滴

對flutter屏幕適配的一點思考

發表日期:2018-12 文章編輯:小燈 瀏覽次數:2604

源碼地址

在進行flutter的布局之中,有這么幾個比較重要的概念:

Logical pixels : 這個是實際布局中所用到的概念,類似于android中的dp

physical pixels(device pixels) : 指的就是物理設備中的像素點

devicePixelRatio : 指的是一個Logical pixels所對應的physical pixels的數量,實際上就是類似于android中的density

flutter提供了非常強大的Layout widgets,實際上配合這些Layout Widget,用Logical pixels這個概念是可以做到在不同分辨率,不同像素密度的屏幕上進行拉伸與縮放而不至于有太大的變形,但這樣做勢必會增加我們適配的難度。

因為flutter對屏幕適配的概念與android的屏幕適配相似,所以可以將android平臺上的屏幕適配的相關經驗移到flutter平臺上。

實際上如果不考慮Logical pixels而只考慮physical pixels,,可以引申出一種拉伸適配的概念,對于一個指定的ui設計稿,可以采取以下這種方式:

designW : 設計稿的寬

designH : 設計稿的高

deviceW : 設備的寬

deviceH : 設備的高

如果我們以寬進行適配,也就說將設計稿的寬拉伸或者縮小到設備的寬,那么可以以如下的公式進行轉換:

dw : 設計稿中某個控件的位置

vw : 最終在實際的設備中的位置

????\frac{deviceW}{designW}=\frac{vw}{dw}

????vw = dw * \frac{deviceW}{designW} = vw * x 其中x=\frac{deviceW}{designW}

如果我們以高進行適配,也就是說將設計稿的高拉伸或縮小到設備的高,那么與寬拉伸相似:

????\frac{deviceH}{designH}=\frac{vw}{dw}

????vw = dw * \frac{deviceH}{designH} = vw * x 其中x=\frac{deviceH}{designH}

比如說分辨率為1080x1920的ui稿,要適配到1440x2560的屏幕上,可以這樣做:

寬適配:

????x = \frac{deviceW}{designW} = \frac{1440}{1080} = 1.333333333333333

????vx = vw * x

高適配:

????x = \frac{deviceH}{designH} = \frac{2560}{1920} = 1.333333333333333

????vx = vw * x

經過這樣的計算,可以將設計稿完美的拉伸到任意設備的屏幕上去,但是有一點需要注意,如果目標設備的屏幕的寬高比與設計稿的寬高比不一致,那么會導致如下兩種情況:

?1.如果是寬適配,那么如果目標設備的寬高比小于設計稿的寬高比(也就是說目標設備的屏幕比設計稿長,例如現在的全面屏或劉海屏)那么就會導致有一個部分留白,如果目標設備的寬高比大于大于設計稿的寬高比(例如iphone4這樣的屏幕)那么就會導致導致當前的屏幕無法完全顯示設計稿的內容,這兩種情況就需要在設計界面的時候充分的考慮到,提前做好處理

?2.高適配和寬適配是一樣的,只不過是會產生橫向的留白或者無法完全顯示

適配后的圖片如下:
設計稿 : 寬 1080 高 1920 480dpi
不同設備對應如下 :
pixel | 寬 : 1080 高 1920 480dpi

pixel_1080_1920_3.png
nexus 6p | 寬 : 1440 高 2560 560dpi

nexus_6p_1440_2560_3.5.png

iphone x | 寬 : 1125 高 2436 458ppi


iphone_x_1125_2436_3.png

可以看到,對于不同的屏幕,都是能夠做到與設計稿一致的。


本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.junxiaosheng.cn/17580.html
上一篇:Flutter 國際化 下一篇:Flutter 狀態管理
相關APP開發
 八年  行業經驗

多一份參考,總有益處

聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

咨詢相關問題或預約面談,可以通過以下方式與我們聯系

業務熱線:余經理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

主站蜘蛛池模板: 最近的2019中文字幕国语版| AV天堂午夜精品一区| 一个人日本的视频免费完整版| 中文天堂www资源| 成人中文在线| 久久99国产综合精品AV蜜桃| 强奸日本美女小游戏| 亚洲看片网站| www精品一区二区三区四区| 扒开校花粉嫩小泬喷潮漫画| 亚洲欧美国产视频| 亚洲高清国产拍精品动图| 欧洲xxxxx| 欧美丰满熟妇BBB久久久| 久久这里的只有是精品23| 少妇系列之白嫩人妻| 99热国产这里只有精品9九| 精品午夜中文字幕熟女人妻在线| 精品亚洲一区二区三区在线播放 | 国产成人无码视频一区二区三区| 国内精品人妻无码久久久影院蜜桃| 欧美另类老少配hd| 野花4在线观看| 国产成人免费手机在线观看视频| 老牛天天晚上夜噜噜噜| 午夜神器老司机高清无码| 9位美女厕所撒尿11分| 久久99r66热这里有精品| 卫生间被教官做好爽HH视频| 879影视动漫h免费观看| 国色天香视频在线社区| 日本理论片午午伦夜理片2021| 重口味av| 精品国产国产精2020久久日| 十九岁韩国电影在线观看 | 中字幕视频在线永久在线 | 女人会操出水图| 色偷偷亚洲男人天堂| 国产高清-国产av| 国产亚洲日韩另类在线观看| 日韩精品无码视频一区二区蜜桃|