• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
    電話圖標(biāo) 余先生:13699882642

    網(wǎng)站百科

    為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

    對(duì)flutter屏幕適配的一點(diǎn)思考

    發(fā)表日期:2018-12 文章編輯:小燈 瀏覽次數(shù):2799

    源碼地址

    在進(jìn)行flutter的布局之中,有這么幾個(gè)比較重要的概念:

    Logical pixels : 這個(gè)是實(shí)際布局中所用到的概念,類似于android中的dp

    physical pixels(device pixels) : 指的就是物理設(shè)備中的像素點(diǎn)

    devicePixelRatio : 指的是一個(gè)Logical pixels所對(duì)應(yīng)的physical pixels的數(shù)量,實(shí)際上就是類似于android中的density

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

    因?yàn)閒lutter對(duì)屏幕適配的概念與android的屏幕適配相似,所以可以將android平臺(tái)上的屏幕適配的相關(guān)經(jīng)驗(yàn)移到flutter平臺(tái)上。

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

    designW : 設(shè)計(jì)稿的寬

    designH : 設(shè)計(jì)稿的高

    deviceW : 設(shè)備的寬

    deviceH : 設(shè)備的高

    如果我們以寬進(jìn)行適配,也就說(shuō)將設(shè)計(jì)稿的寬拉伸或者縮小到設(shè)備的寬,那么可以以如下的公式進(jìn)行轉(zhuǎn)換:

    dw : 設(shè)計(jì)稿中某個(gè)控件的位置

    vw : 最終在實(shí)際的設(shè)備中的位置

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

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

    如果我們以高進(jìn)行適配,也就是說(shuō)將設(shè)計(jì)稿的高拉伸或縮小到設(shè)備的高,那么與寬拉伸相似:

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

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

    比如說(shuō)分辨率為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

    經(jīng)過(guò)這樣的計(jì)算,可以將設(shè)計(jì)稿完美的拉伸到任意設(shè)備的屏幕上去,但是有一點(diǎn)需要注意,如果目標(biāo)設(shè)備的屏幕的寬高比與設(shè)計(jì)稿的寬高比不一致,那么會(huì)導(dǎo)致如下兩種情況:

    ?1.如果是寬適配,那么如果目標(biāo)設(shè)備的寬高比小于設(shè)計(jì)稿的寬高比(也就是說(shuō)目標(biāo)設(shè)備的屏幕比設(shè)計(jì)稿長(zhǎng),例如現(xiàn)在的全面屏或劉海屏)那么就會(huì)導(dǎo)致有一個(gè)部分留白,如果目標(biāo)設(shè)備的寬高比大于大于設(shè)計(jì)稿的寬高比(例如iphone4這樣的屏幕)那么就會(huì)導(dǎo)致導(dǎo)致當(dāng)前的屏幕無(wú)法完全顯示設(shè)計(jì)稿的內(nèi)容,這兩種情況就需要在設(shè)計(jì)界面的時(shí)候充分的考慮到,提前做好處理

    ?2.高適配和寬適配是一樣的,只不過(guò)是會(huì)產(chǎn)生橫向的留白或者無(wú)法完全顯示

    適配后的圖片如下:
    設(shè)計(jì)稿 : 寬 1080 高 1920 480dpi
    不同設(shè)備對(duì)應(yīng)如下 :
    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

    可以看到,對(duì)于不同的屏幕,都是能夠做到與設(shè)計(jì)稿一致的。


    本頁(yè)內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過(guò)網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁(yè)中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/17580.html
    相關(guān)APP開發(fā)
     八年  行業(yè)經(jīng)驗(yàn)

    多一份參考,總有益處

    聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費(fèi)獲得網(wǎng)站建設(shè)方案及報(bào)價(jià)

    咨詢相關(guān)問(wèn)題或預(yù)約面談,可以通過(guò)以下方式與我們聯(lián)系

    業(yè)務(wù)熱線:余經(jīng)理:13699882642

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

    久久亚洲日韩精品一区二区三区| 成人久久精品一区二区三区| 久久精品亚洲男人的天堂| 精品亚洲av无码一区二区柚蜜| 久久精品加勒比中文字幕| 亚洲国产精品成人久久蜜臀 | 亚洲精品国产肉丝袜久久| 97r久久精品国产99国产精| 国产三级精品视频| 欧洲精品成人免费视频在线观看| 久久丫精品国产亚洲av| 国产一精品一AV一免费| 亚洲国产精品无码久久九九| AV天堂午夜精品一区二区三区| 精品一区精品二区制服| 99aiav国产精品视频| 久久精品国产91久久麻豆自制| 国产精品自在在线午夜福利| 国产精品女在线观看| 青青青国产精品国产精品美女 | 韩国三级中文字幕hd久久精品| 精品国自产拍天天拍2021| 国产精品视频在线观看| 2021国产成人午夜精品| 亚洲国产美女精品久久久久| 一级香蕉精品视频在线播放| 国产精品白丝AV网站| 好属妞这里只有精品久久| 亚洲精品~无码抽插| 国内精品久久久久久久coent | 国产精品99久久精品| 久久亚洲精品无码aⅴ大香 | 亚洲精品无码日韩国产不卡av| 亚洲午夜精品在线| 久久精品九九亚洲精品| 91精品免费观看| 蜜桃麻豆WWW久久囤产精品| 久久亚洲国产成人精品性色| 亚洲国产精品一区二区久久| 亚洲2022国产成人精品无码区| 久久久国产乱子伦精品|