日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

听说你还在用dp做屏幕适配?

發(fā)布時(shí)間:2024/3/24 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 听说你还在用dp做屏幕适配? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家在Android開發(fā)時(shí),肯定會(huì)覺得屏幕適配是個(gè)尤其痛苦的事,各種屏幕尺寸適配起來巨煩無比。如果我們換個(gè)角度我們看下這個(gè)問題,不知道大家有沒有了解過web前端開發(fā),或者說大家對(duì)于網(wǎng)頁都不陌生吧,其實(shí)適配的問題在web頁面的設(shè)計(jì)中理論上也存在,為什么這么說呢?電腦的顯示器的分辨率、包括手機(jī)分辨率,我敢說分辨率的種類遠(yuǎn)超過Android設(shè)備的分辨率,那么有一個(gè)很奇怪的現(xiàn)象:

為什么Web頁面設(shè)計(jì)人員從來沒有說過,屏幕適配好麻煩?

那么,到底是什么原因,讓網(wǎng)頁的設(shè)計(jì)可以在千差萬別的分辨率的分辨率中依舊能給用戶一個(gè)優(yōu)質(zhì)的體驗(yàn)?zāi)?#xff1f;帶著這個(gè)疑惑,我問了下一個(gè)前端朋友,朋友睜大眼睛問我:適配是什么?? 前端似乎看來的確沒有這類問題,后來在我仔細(xì)的追問后,她告訴我,噢 這個(gè)尺寸呀,我們一般都加個(gè)viewport,我都是設(shè)置為20%縮放的~~ 追根到底,其實(shí)就是一個(gè)原因,網(wǎng)頁提供了縮放比計(jì)算大小。

同樣的,大家拿到UI給的設(shè)計(jì)圖以后,是不是抱怨過UI妹妹標(biāo)識(shí)的都是px,而我項(xiàng)目里面用dp,這都什么玩意😂,和UI解釋她也不理解,開發(fā)同樣也是一臉無奈。所以能不能有一套完美的解決方案來解決Android工程師和UI妹妹間的矛盾,實(shí)現(xiàn)UI給出一個(gè)固定尺寸的設(shè)計(jì)稿,然后你在編寫布局的時(shí)候不用思考,無腦照抄上面標(biāo)識(shí)的像素值,就能達(dá)到完美適配。理想夠豐滿,但現(xiàn)實(shí)夠殘酷:

由于Android系統(tǒng)的開放性,任何用戶、開發(fā)者、OEM廠商、運(yùn)營商都可以對(duì)Android進(jìn)行定制,于是導(dǎo)致:

  • Android系統(tǒng)碎片化:小米定制的MIUI、魅族定制的flyme、華為定制的EMUI等等,當(dāng)然其都是基于Google原生系統(tǒng)定制的

  • Android機(jī)型屏幕尺寸碎片化:5寸、5.5寸、6寸等等

  • Android屏幕分辨率碎片化:320x480、480x800、720x1280、1080x1920

據(jù)友盟指數(shù)顯示,統(tǒng)計(jì)至2015年12月,支持Android的設(shè)備共有27796種

當(dāng)Android系統(tǒng)、屏幕尺寸、屏幕密度出現(xiàn)碎片化的時(shí)候,就很容易出現(xiàn)同一元素在不同手機(jī)上顯示不同的問題。

試想一下這么一個(gè)場(chǎng)景:

為4.3寸屏幕準(zhǔn)備的UI設(shè)計(jì)圖,運(yùn)行在5.0寸的屏幕上,很可能在右側(cè)和下側(cè)存在大量的空白;而5.0寸的UI設(shè)計(jì)圖運(yùn)行到4.3寸的設(shè)備上,很可能顯示不下。

屏幕種類這么多,那么就需要一套完美的方案去解決適配問題,介紹屏幕適配方案之前,先簡(jiǎn)單介紹下Android屏幕中用到的一些相關(guān)重要概念::**

屏幕尺寸

· 含義:手機(jī)對(duì)角線的物理尺寸

· 單位:英寸(inch),1英寸=2.54cm

Android手機(jī)常見的尺寸有5寸、5.5寸、6寸等等

屏幕分辨率

· 含義:手機(jī)在橫向、縱向上的像素點(diǎn)數(shù)總和

  • 一般描述成屏幕的"寬x高”=AxB

  • 含義:屏幕在橫向方向(寬度)上有A個(gè)像素點(diǎn),在縱向方向(高)有B個(gè)像素點(diǎn)

  • 例子:1080x1920,即寬度方向上有1080個(gè)像素點(diǎn),在高度方向上有1920個(gè)像素點(diǎn)

    • 單位:px(pixel),1px=1個(gè)像素點(diǎn)

    UI設(shè)計(jì)師的設(shè)計(jì)圖會(huì)以px作為統(tǒng)一的計(jì)量單位

    • Android手機(jī)常見的分辨率:320x480、480x800、720x1280、1080x1920、 1080x2340

    屏幕像素密度

    • 含義:每英寸的像素點(diǎn)數(shù)

    • 單位:dpi(dots per ich)

    假設(shè)設(shè)備內(nèi)每英寸有160個(gè)像素,那么該設(shè)備的屏幕像素密度=160dpi

    • 安卓手機(jī)對(duì)于每類手機(jī)屏幕大小都有一個(gè)相應(yīng)的屏幕像素密度:
    密度類型代表的分辨率(px)屏幕密度(dpi)
    低密度(ldpi)240x320120
    中密度(mdpi)320x480160
    高密度(hdpi)480x800240
    超高密度(xhdpi)720x1280320
    超超高密度(xxhdpi)1080x1920480

    屏幕尺寸、分辨率、像素密度三者關(guān)系

    一部手機(jī)的分辨率是寬*高,屏幕大小是以寸為單位,那么三者的關(guān)系是:

    不懂沒關(guān)系,在這里舉個(gè)例子

    假設(shè)一部手機(jī)的分辨率是1080x1920(px),屏幕大小是5寸,問密度是多少?

    :請(qǐng)直接套公式

    密度無關(guān)像素

    • 含義:density-independent pixel,叫dp或dip,與終端上的實(shí)際物理像素點(diǎn)無關(guān)。
    • 單位:dp,可以保證在不同屏幕像素密度的設(shè)備上顯示相同的效果
  • Android開發(fā)時(shí)用dp而不是px單位設(shè)置圖片大小,是Android特有的單位
  • 場(chǎng)景:假如同樣都是畫一條長(zhǎng)度是屏幕一半的線,如果使用px作為計(jì)量單位,那么在480x800分辨率手機(jī)上設(shè)置應(yīng)為240px;在320x480的手機(jī)上應(yīng)設(shè)置為160px,二者設(shè)置就不同了;如果使用dp為單位,在這兩種分辨率下,160dp都顯示為屏幕一半的長(zhǎng)度。
    • dp與px的轉(zhuǎn)換
      因?yàn)閡i設(shè)計(jì)師給你的設(shè)計(jì)圖是以px為單位的,Android開發(fā)則是使用dp作為單位的,那么我們需要進(jìn)行轉(zhuǎn)換:
    密度類型代表的分辨率(px)屏幕密度(dpi)換算(px/dp)
    低密度(ldpi)240x3201201dp=0.75px
    中密度(mdpi)320x4801601dp=1px
    高密度(hdpi)480x8002401dp=1.5px
    超高密度(xhdpi)720x12803201dp=2px
    超超高密度(xxhdpi)1080x19204801dp=3px

    在Android中,規(guī)定以160dpi(即屏幕分辨率為320x480)為基準(zhǔn):1dp=1px

    獨(dú)立比例像素

    • 含義:scale-independent pixel,叫sp或sip
    • 單位:sp

    Android開發(fā)時(shí)用此單位設(shè)置文字大小,可根據(jù)字體大小首選項(xiàng)進(jìn)行縮放。

    推薦使用12sp、14sp、18sp、22sp作為字體設(shè)置的大小,不推薦使用奇數(shù)和小數(shù),容易造成精度的丟失問題;小于12sp的字體會(huì)太小導(dǎo)致用戶看不清

    請(qǐng)把上面的概念記住,因?yàn)橄旅嬷v解都會(huì)用到!

    適配方案比較

    1. dp原生方案

    2. dimen基于px和dp的適配(寬高限定符和smallestWidth適配)

    3. 頭條屏幕適配方案

    4. 頭條適配方案改進(jìn)版本

    dp原生方案

    前言:統(tǒng)一以px為單位有什么問題?

    Android屏幕適配由來已久,關(guān)鍵在于屏幕尺寸與屏幕分辨率的變化巨大,而很多UI工程師為了兼容iOS和Android的適配,這樣導(dǎo)致設(shè)計(jì)出來的UI稿是以px單位標(biāo)注的。在成千上百種機(jī)型面前,px單位已難以適應(yīng)。

    1.同樣尺寸,不同分辨率:

    1080px的寬度上顯示100px 比例是100/1080

    720px的寬度上顯示100px 比例是100/720

    2.同分辨率,不同尺寸:

    1080px在4.7寸上顯示100px

    1080px在6.1寸上顯示100px

    如果使用多套px文件方案來適配,市面上少說上百種寸,需要的文件太多了

    不同分辨率的屏幕該如何適配

    這時(shí)候就需要用到dp方案來解決了,所以dp究竟解決了什么問題?

    以下公式表示了,同樣尺寸上不同分辨率(不同density)的設(shè)備,每1dp所代表的像素?cái)?shù)量是不一樣的。

    480 dpi上 1dp = 1 * 3 = 3px

    320 dpi上 1dp = 1 * 2 = 2px

    240 dpi上 1dp = 1 * 1.5 = 1.5px

    160 dpi上 1dp = 1 * 1 = 1px

    120 dpi上 1dp = 1 * 0.75 = 0.75px

    但是所表示的物理長(zhǎng)度(160dp=1in)是一樣的。

    160 dp在density=3上表示480px,物理長(zhǎng)度為1 in

    160 dp在density=2上表示320px,物理長(zhǎng)度為1 in

    160 dp在density=1.5上表示240px,物理長(zhǎng)度為1 in

    160 dp在density=1上表示160px,物理長(zhǎng)度為1 in

    160 dp在density=0.75上表示120px,物理長(zhǎng)度為1 in

    由上可知,dp單位的使用就意味著你在這些同樣尺寸但是不同分辨率的設(shè)備上看到的大小一樣,此時(shí)各設(shè)備上顯示的比例也就一致了。

    dp方案沒有解決什么問題

    舉個(gè)例子:

    屏幕分辨率為:1920*1080,屏幕尺寸為5吋的話,那么dpi為440。假設(shè)我們UI設(shè)計(jì)圖是按屏幕寬度為360dp來設(shè)計(jì)的,那這樣會(huì)存在什么問題呢?

    在上述設(shè)備上,屏幕寬度其實(shí)為1080/(440/160)=392.7dp,也就是屏幕是比設(shè)計(jì)圖要寬的。這種情況下, 即使使用dp也是無法在不同設(shè)備上顯示為同樣效果的。 同時(shí)還存在部分設(shè)備屏幕寬度不足360dp,這時(shí)就會(huì)導(dǎo)致按360dp寬度來開發(fā)實(shí)際顯示不全的情況。

    而且上述屏幕尺寸、分辨率和像素密度的關(guān)系,很多設(shè)備并沒有按此規(guī)則來實(shí)現(xiàn), 因此dpi的值非常亂,沒有規(guī)律可循,從而導(dǎo)致使用dp適配效果差強(qiáng)人意。

    dimen基于px和dp的適配(寬高限定符和smallestWidth適配)

    dimen基于dp適配 SmallestWidth限定符

    原理:

    這種適配依據(jù)的是最小寬度限定符。指的是Android會(huì)識(shí)別屏幕可用高度和寬度的最小尺寸的dp值(其實(shí)就是手機(jī)的寬度值),然后根據(jù)識(shí)別到的結(jié)果去資源文件中尋找對(duì)應(yīng)限定符的文件夾下的資源文件。這種機(jī)制和上文提到的寬高限定符適配原理上是一樣的,都是系統(tǒng)通過特定的規(guī)則來選擇對(duì)應(yīng)的文件。

    舉個(gè)例子,小米5的dpi是480,橫向像素是1080px,根據(jù)px=dp(dpi/160),橫向的dp值是1080/(480/160),也就是360dp,系統(tǒng)就會(huì)去尋找是否存在value-sw360dp的文件夾以及對(duì)應(yīng)的資源文件。

    smallestWidth限定符適配和寬高限定符適配最大的區(qū)別在于,有很好的容錯(cuò)機(jī)制,如果沒有value-sw360dp文件夾,系統(tǒng)會(huì)向下尋找,比如離360dp最近的只有value-sw350dp,那么Android就會(huì)選擇value-sw350dp文件夾下面的資源文件。這個(gè)特性就完美的解決了上文提到的寬高限定符的容錯(cuò)問題。

    缺點(diǎn):

    • 侵入性強(qiáng)
    • Android 私人訂制的原因,寬度方面參差不齊,不可能適配所有的手機(jī)。
    • 項(xiàng)目中增加了N個(gè)文件夾,上拉下拉查看文件非常不方便:想看string或者color資源文件需要拉很多再能到達(dá)。
    • 通過寬度限定符就近查找的原理,可以看出來匹配出來的大小不夠準(zhǔn)確。
    • 是在Android 3.2 以后引入的,Google的本意是用它來適配平板的布局文件(但是實(shí)際上顯然用于diemns適配的效果更好),不過目前SPX所有的項(xiàng)目應(yīng)該最低支持版本應(yīng)該都是5.1了,所以這問題其實(shí)也不重要了。

    dimens基于px的適配 寬高限定符適配

    原理:

    根據(jù)市面上手機(jī)分辨率的占比分析,我們選定一個(gè)占比例值大的(比如1280*720)設(shè)定為一個(gè)基準(zhǔn),然后其他分辨率根據(jù)這個(gè)基準(zhǔn)做適配。

    基準(zhǔn)的意思(比如320*480的分辨率為基準(zhǔn))是:

    寬為320,將任何分辨率的寬度分為320份,取值為x1到x320

    長(zhǎng)為480,將任何分辨率的高度分為480份,取值為y1到y(tǒng)480

    例如對(duì)于800 * 480的分辨率設(shè)備來講,需要在項(xiàng)目中values-800x480目錄下的dimens.xml文件中的如下設(shè)置(當(dāng)然了,可以通過工具自動(dòng)生成):

    <resources> <dimen name="x1">1.5px</dimen> <dimen name="x2">3.0px</dimen> <dimen name="x3">4.5px</dimen> <dimen name="x4">6.0px</dimen> <dimen name="x5">7.5px</dimen></pre>

    可以看到x1 = 480 / 基準(zhǔn) = 480 / 320 = 1.5 ;它的意思就是同樣的1px,在320/480分辨率的手機(jī)上是1px,在480/800的分辨率的手機(jī)上就是1*1.5px,px會(huì)根據(jù)我們指定的不同values文件夾自動(dòng)適配為合適的大小。

    驗(yàn)證方案:

    簡(jiǎn)單通過計(jì)算驗(yàn)證下這種方案是否能達(dá)到適配的效果,例如設(shè)計(jì)圖上有一個(gè)寬187dp的View。

    分辨率為480 * 800

    • 設(shè)計(jì)圖占寬比: 187dp / 375dp = 0.498
    • 實(shí)際在480 800占寬比 = 187 1.28px / 480 = 0.498

    分辨率為1080 * 1920

    • 設(shè)計(jì)圖占寬比: 187dp / 375dp = 0.498
    • 實(shí)際在1080 1920占寬比 = 187 2.88px / 1080 = 0.498
    • 計(jì)算高同理

    缺點(diǎn):

    • 侵入性強(qiáng)
    • 需要精準(zhǔn)命中資源文件才能適配,比如1920x1080的手機(jī)就一定要找到1920x1080的限定符,否則就只能用統(tǒng)一的默認(rèn)的dimens文件了。而使用默認(rèn)的尺寸的話,UI就很可能變形,簡(jiǎn)單說,就是容錯(cuò)機(jī)制很差。
    • Android不同分辨率的手機(jī)實(shí)在太多了,可能你說主流就可以,的確小公司主流就可以,淘寶這種App肯定不能只適配主流手機(jī)。控件在設(shè)計(jì)圖上顯示的大小以及控件之間的間隙在小分辨率和大分辨率手機(jī)上天壤之別,你會(huì)發(fā)現(xiàn)大屏幕手機(jī)上控件超級(jí)大。可能你會(huì)覺得正常,畢竟分辨率不同。但實(shí)際效果大的有些夸張。
    • 占據(jù)資源大:好幾百KB,甚至多達(dá)1M或跟多。

    頭條屏幕適配方案

    梳理需求:

    首先來梳理下我們的需求,一般我們?cè)O(shè)計(jì)圖都是以固定的尺寸來設(shè)計(jì)的。比如以分辨率1920px * 1080px來設(shè)計(jì),以density為3來標(biāo)注,也就是屏幕其實(shí)是640dp * 360dp。如果我們想在所有設(shè)備上顯示完全一致,其實(shí)是不現(xiàn)實(shí)的,因?yàn)槠聊桓邔挶炔皇枪潭ǖ?#xff0c;16:9、4:3甚至其他寬高比層出不窮,寬高比不同,顯示完全一致就不可能了。但是通常下,我們只需要以寬或高一個(gè)維度去適配,比如我們Feed是上下滑動(dòng)的,只需要保證在所有設(shè)備中寬的維度上顯示一致即可,再比如一個(gè)不支持上下滑動(dòng)的頁面,那么需要保證在高這個(gè)維度上都顯示一致,尤其不能存在某些設(shè)備上顯示不全的情況。同時(shí)考慮到現(xiàn)在基本都是以dp為單位去做的適配,如果新的方案不支持dp,那么遷移成本也非常高。

    因此,總結(jié)下大致需求如下:

    • 支持以寬或者高一個(gè)維度去適配,保持該維度上和設(shè)計(jì)圖一致;
    • 支持dp和sp單位,控制遷移成本到最小。

    找方案兼容突破口

    從dp和px的轉(zhuǎn)換公式 :

    px=dp?density\color{red}{px = dp * density}px=dp?density

    可以看出,如果設(shè)計(jì)圖寬為360dp,想要保證在所有設(shè)備計(jì)算得出的px值都正好是屏幕寬度的話,我們只能修改 density 的值。通過閱讀源碼,我們可以得知,density 是 DisplayMetrics 中的成員變量,而 DisplayMetrics 實(shí)例通過 Resources#getDisplayMetrics 可以獲得,而Resouces通過Activity或者Application的Context獲得。

    先來熟悉下 DisplayMetrics 中和適配相關(guān)的幾個(gè)變量:

    • DisplayMetrics#density 就是上述的density
    • DisplayMetrics#densityDpi 就是上述的dpi
    • DisplayMetrics#scaledDensity 字體的縮放因子,正常情況下和density相等,但是調(diào)節(jié)系統(tǒng)字體大小后會(huì)改變這個(gè)值

    是不是Android中所有的dp和px的換算都是通過 DisplayMetrics 中相關(guān)的值來計(jì)算的呢?

    • 首先來看看布局文件中的dp轉(zhuǎn)化,最終都是調(diào)用TypedValue#applyDimension來進(jìn)行住轉(zhuǎn)化

    • 圖片的decode,BitmapFactory#decodeResourceStream方法:

    當(dāng)然還有些其他dp轉(zhuǎn)換的場(chǎng)景,基本都是通過 DisplayMetrics 來計(jì)算的,這里不再詳述。因此,想要滿足上述需求,我們只需要修改DisplayMetrics 中和 dp 轉(zhuǎn)換相關(guān)的變量即可。

    最終方案:

    下面假設(shè)設(shè)計(jì)圖寬度是360dp,以寬維度來適配。

    那么適配后 自定義density = 設(shè)備真實(shí)寬(單位px) / 360,接下來只需要把我們計(jì)算好的 density 在系統(tǒng)中修改下即可,代碼實(shí)現(xiàn)如下:

    同時(shí)在 Activity#onCreate 方法中調(diào)用下。代碼比較簡(jiǎn)單,也沒有涉及到系統(tǒng)非公開api的調(diào)用,因此理論上不會(huì)影響app穩(wěn)定性。

    缺點(diǎn):

    • 只能支持以高或?qū)捴械囊粋€(gè)作為基準(zhǔn)進(jìn)行適配。
    • 只需要修改一次 density,項(xiàng)目中的所有地方都會(huì)自動(dòng)適配,這個(gè)看似解放了雙手,減少了很多操作,但是實(shí)際上反應(yīng)了一個(gè)缺點(diǎn),那就是只能一刀切的將整個(gè)項(xiàng)目進(jìn)行適配,但適配范圍是不可控的。項(xiàng)目中如果采用了系統(tǒng)控件、三方庫控件、等不是我們項(xiàng)目自身設(shè)計(jì)的控件,這時(shí)就會(huì)出現(xiàn)和我們項(xiàng)目自身的設(shè)計(jì)圖尺寸差距非常大的問題。

    頭條適配方案改進(jìn)版本

    大致思路:在頭條適配方案的基礎(chǔ)上,通過重寫Activity的getResources(),重寫冷門單位pt作為基準(zhǔn)單位,它是Android 中的一個(gè)長(zhǎng)度單位:表示一個(gè)點(diǎn),是屏幕的物理尺寸,其大小為 1 英寸的 1 / 72,也就是 72pt 等于 1 英寸

    • AdaptScreenUtils
    public final class AdaptScreenUtils { private static List<Field> sMetricsFields;private AdaptScreenUtils() {throw new UnsupportedOperationException("u can't instantiate me..."); }/*** Adapt for the horizontal screen, and call it in {@link android.app.Activity#getResources()}.*/ public static Resources adaptWidth(final Resources resources, final int designWidth) {float newXdpi = (resources.getDisplayMetrics().widthPixels * 72f) / designWidth;applyDisplayMetrics(resources, newXdpi);return resources; }/*** Adapt for the vertical screen, and call it in {@link android.app.Activity#getResources()}.*/ public static Resources adaptHeight(final Resources resources, final int designHeight) {return adaptHeight(resources, designHeight, false); }/*** Adapt for the vertical screen, and call it in {@link android.app.Activity#getResources()}.*/ public static Resources adaptHeight(final Resources resources, final int designHeight, final boolean includeNavBar) {float screenHeight = (resources.getDisplayMetrics().heightPixels+ (includeNavBar ? getNavBarHeight(resources) : 0)) * 72f;float newXdpi = screenHeight / designHeight;applyDisplayMetrics(resources, newXdpi);return resources; }private static int getNavBarHeight(final Resources resources) {int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");if (resourceId != 0) {return resources.getDimensionPixelSize(resourceId);} else {return 0;} }/*** @param resources The resources.* @return the resource*/ public static Resources closeAdapt(final Resources resources) {float newXdpi = Resources.getSystem().getDisplayMetrics().density * 72f;applyDisplayMetrics(resources, newXdpi);return resources; }/*** Value of pt to value of px.** @param ptValue The value of pt.* @return value of px*/ public static int pt2Px(final float ptValue) {DisplayMetrics metrics = FWAdSDK.sContext.getResources().getDisplayMetrics();return (int) (ptValue * metrics.xdpi / 72f + 0.5); }/*** Value of px to value of pt.** @param pxValue The value of px.* @return value of pt*/ public static int px2Pt(final float pxValue) {DisplayMetrics metrics = FWAdSDK.sContext.getResources().getDisplayMetrics();return (int) (pxValue * 72 / metrics.xdpi + 0.5); }private static void applyDisplayMetrics(final Resources resources, final float newXdpi) {resources.getDisplayMetrics().xdpi = newXdpi;FWAdSDK.sContext.getResources().getDisplayMetrics().xdpi = newXdpi;applyOtherDisplayMetrics(resources, newXdpi); }static void preLoad() {applyDisplayMetrics(Resources.getSystem(), Resources.getSystem().getDisplayMetrics().xdpi); }private static void applyOtherDisplayMetrics(final Resources resources, final float newXdpi) {if (sMetricsFields == null) {sMetricsFields = new ArrayList<>();Class resCls = resources.getClass();Field[] declaredFields = resCls.getDeclaredFields();while (declaredFields != null && declaredFields.length > 0) {for (Field field : declaredFields) {if (field.getType().isAssignableFrom(DisplayMetrics.class)) {field.setAccessible(true);DisplayMetrics tmpDm = getMetricsFromField(resources, field);if (tmpDm != null) {sMetricsFields.add(field);tmpDm.xdpi = newXdpi;}}}resCls = resCls.getSuperclass();if (resCls != null) {declaredFields = resCls.getDeclaredFields();} else {break;}}} else {applyMetricsFields(resources, newXdpi);} }private static void applyMetricsFields(final Resources resources, final float newXdpi) {for (Field metricsField : sMetricsFields) {try {DisplayMetrics dm = (DisplayMetrics) metricsField.get(resources);if (dm != null) dm.xdpi = newXdpi;} catch (Exception e) {Log.e("AdaptScreenUtils", "applyMetricsFields: " + e);}} }private static DisplayMetrics getMetricsFromField(final Resources resources, final Field field) {try {return (DisplayMetrics) field.get(resources);} catch (Exception e) {Log.e("AdaptScreenUtils", "getMetricsFromField: " + e);return null;} } }
    • 使用方法
      以寬度320為基準(zhǔn)進(jìn)行適配

      @Override
      public Resources getResources() {
      return AdaptScreenUtils.adaptWidth(super.getResources(),320);
      }

    假設(shè)我現(xiàn)在需要在屏幕中心有個(gè)按鈕,寬度和高度為我們屏幕寬度的1/2,我可以怎么編寫布局文件呢?

    <FrameLayout> <Buttonandroid:layout_gravity="center"android:gravity="center"android:text="@string/hello_world"android:layout_width="160pt"android:layout_height="160pt"/> </FrameLayout>

    效果

    480 x 800 - mdpi(160dpi)

    720 x 1280 - xhdpi(320dpi)

    1080 x 1920 - xxhdpi(480dpi)

    可以看到效果圖中 WebView 對(duì)之后的 View 并沒有產(chǎn)生適配失效的問題,這是之前適配所不能解決的問題。

    優(yōu)點(diǎn)

    1. 無侵入性
    用了這個(gè)之后依然可以使用dp包括其他任何單位,對(duì)從前使用的布局不會(huì)造成任何影響,在老項(xiàng)目中開發(fā)新功能你可以膽大地加入該適配方案,新項(xiàng)目的話更可以毫不猶豫地采用該適配,并且在關(guān)閉該關(guān)閉后,pt 效果等同于 dp 哦。

    2. 靈活性高
    如果你想要對(duì)某個(gè) View 做到不同分辨率的設(shè)備下,使其尺寸在適配維度上所占比例一致的話,那么對(duì)它使用 pt 單位即可,如果你不想要這樣的效果,而是想要更大尺寸的設(shè)備顯示更多的內(nèi)容,那么可以像從前那樣寫 dp、sp 什么的即可,結(jié)合這兩點(diǎn),在界面布局上你就可以游刃有余地做到你想要的效果。

    3. 不會(huì)影響系統(tǒng) View 和三方 View 的大小
    這點(diǎn)其實(shí)在無侵入性中已經(jīng)表現(xiàn)出來了,由于頭條的方案是直接修改 DisplayMetrics#density 的 dp 適配,這樣會(huì)導(dǎo)致系統(tǒng) View 尺寸和原先不一致,比如 Dialog、Toast、 尺寸,同樣,三方 View 的大小也會(huì)和原先效果不一致,這也就是選擇 pt 適配的原因之一。

    4. 不會(huì)失效
    因?yàn)椴徽擃^條的適配還是其他三方庫適配,都會(huì)存在 DisplayMetrics#density 被還原的情況,需要自己重新設(shè)置回去,最顯著的就是界面中存在 WebView 的話,由于其初始化的時(shí)候會(huì)還原 DisplayMetrics#density 的值導(dǎo)致適配失效,當(dāng)然這點(diǎn)已經(jīng)有解決方案了,但還會(huì)有很多其他情況會(huì)還原 DisplayMetrics#density 的值導(dǎo)致適配失效。而我這方案就是為了解決這個(gè)痛點(diǎn),不讓 DisplayMetrics 中的值被還原導(dǎo)致適配失效。

    缺點(diǎn):

    只能適配寬或者高其中一邊,但這也是絕大部分適配方案的痛點(diǎn)所在,長(zhǎng)和寬只能適配其一,好在大部分公司在采用這些方案去適配是都采用優(yōu)先適配寬,然后在長(zhǎng)上面以滑動(dòng)形式去進(jìn)行解決;

    小結(jié):

    雖然 dimen基于px和dp的適配這種方案能涵蓋市面上所有機(jī)型屏幕的適配,但是冗余的dimen文件會(huì)讓工程師們生不如死,而且這種方案侵入性非常強(qiáng),一旦使用將使得回退變得非常的困難;頭條適配方案和頭條適配優(yōu)化方案作為一種侵入性不是很強(qiáng)的方式進(jìn)行接入,能完美解決代碼冗余問題,而且總體方案靈活性很高,但只能選擇寬或者高作為唯一維度去進(jìn)行適配;

    上述方案都能用來解決屏幕適配問題,每種方案都有其獨(dú)特的優(yōu)缺點(diǎn),因此最終選取哪種方案因人而異

    參考文章:

    Android屏幕適配和方案【整理】

    Android 屏幕適配:最全面的解決方案

    Android 屏幕適配方案

    一種極低成本的Android屏幕適配方式

    Android聽說你還在用dp單位做屏幕適配?

    ?? 謝謝支持

    以上便是本次分享的全部?jī)?nèi)容,希望對(duì)你有所幫助_

    喜歡的話別忘了 分享、點(diǎn)贊、收藏 三連哦~。

    歡迎關(guān)注公眾號(hào) 程序員巴士,一輛有趣、有范兒、有溫度的程序員巴士,涉獵大廠面經(jīng)、程序員生活、實(shí)戰(zhàn)教程、技術(shù)前沿等內(nèi)容,關(guān)注我,交個(gè)朋友。

    總結(jié)

    以上是生活随笔為你收集整理的听说你还在用dp做屏幕适配?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    香蕉视频在线免费看 | 国产在线精品一区二区不卡了 | 国产麻豆精品在线观看 | 黄色免费av | 日韩电影在线观看一区二区三区 | 亚洲区另类春色综合小说校园片 | 久 久久影院 | 伊人网综合在线观看 | 成人免费在线播放视频 | 精品久久久999| 中文国产在线观看 | 久久草在线精品 | 成年人看片网站 | 欧美一区二区在线 | 国产亚洲欧美日韩高清 | 成人av教育| 天天色天天操天天爽 | 国产视频一区在线 | 揉bbb玩bbb少妇bbb | 五月天九九 | 久久久久国 | 香蕉久久久久久av成人 | 亚洲成人免费在线 | 九九热在线精品 | 国产精品精品久久久 | 日本成人中文字幕在线观看 | 日韩av电影免费观看 | 黄色一级大片免费看 | 婷婷丁香社区 | www婷婷| 丁香六月中文字幕 | 99精品美女 | 高清视频一区 | 免费在线观看日韩 | 四虎影视成人精品国库在线观看 | 国产伦精品一区二区三区四区视频 | 久久久久久久久久久电影 | 日韩在线无 | 在线中文字幕一区二区 | 亚洲欧洲精品一区二区 | 久久,天天综合 | 天天操天天干天天干 | 伊人在线视频 | 国产视频高清 | 久草影视在线观看 | 三级a视频 | 日本久久精品 | 2019中文最近的2019中文在线 | 亚洲高清精品在线 | 免费黄色网址大全 | 亚洲一区二区视频 | 中文字幕在线视频一区 | 亚洲视频,欧洲视频 | 成人四虎影院 | 国产不卡毛片 | 久久国产亚洲 | 婷婷日日 | 91精彩视频在线观看 | 成人91在线| 国产成人在线播放 | 欧洲亚洲精品 | 亚洲欧美视频在线 | 亚洲区另类春色综合小说 | 日韩大片在线观看 | 国外av在线 | 日韩精品影视 | 日本韩国精品一区二区在线观看 | 五月天激情视频在线观看 | 精品99在线视频 | av福利第一导航 | 色爱区综合激月婷婷 | 黄色小视频在线观看免费 | 久久综合久久综合久久综合 | 精品久久久久久国产91 | av在线播放一区二区三区 | 天天看天天操 | 色偷偷88欧美精品久久久 | 狠狠色丁香久久婷婷综合_中 | 日日干av | 精品国产三级a∨在线欧美 免费一级片在线观看 | 欧美韩日精品 | 色综合人人 | 麻豆视传媒官网免费观看 | 天天干国产 | 深夜福利视频在线观看 | 成人一区不卡 | 97av视频| 国产日产精品久久久久快鸭 | 五月激情六月丁香 | 最近中文国产在线视频 | 久久电影国产免费久久电影 | 伊人久久在线观看 | 91麻豆精品国产自产在线 | 欧美色图东方 | 日韩成人精品在线观看 | 日韩欧美在线视频一区二区三区 | 亚洲精品动漫久久久久 | 久久这里只有精品久久 | 在线精品视频免费播放 | 欧美一区二区三区四区夜夜大片 | 国产精品久久久久久久久久久杏吧 | 婷婷综合视频 | 久草在线欧美 | 亚洲自拍自偷 | 国产97视频 | 欧美日韩高清不卡 | 国产精品久久久区三区天天噜 | 欧美电影黄色 | 波多野结衣视频一区二区三区 | 欧美另类交在线观看 | 欧美经典久久 | 国内视频| 99免费看片 | 久久超碰在线 | 最新国产精品拍自在线播放 | 夜夜澡人模人人添人人看 | 国产精品一区电影 | 97夜夜澡人人爽人人免费 | 国产 在线观看 | 国产视频2区 | 98福利在线 | 久草视频视频在线播放 | 区一区二区三在线观看 | 97人人添人澡人人爽超碰动图 | 午夜丁香网 | 午夜123 | 国产一级二级在线 | 国产在线高清 | 欧美大荫蒂xxx | 激情av综合 | 久久精品精品电影网 | 2019中文最近的2019中文在线 | 成人免费网站视频 | 国产大陆亚洲精品国产 | 亚洲精品自拍视频在线观看 | 免费日韩精品 | 69国产精品视频 | 国产精品一级在线 | 久久久福利视频 | 免费福利在线 | 五月天亚洲婷婷 | 波多野结衣小视频 | 午夜精品久久久久久久久久久久久久 | 狠狠色丁香久久婷婷综合五月 | 天天操天天干天天爽 | 亚洲精品乱码久久久久久久久久 | 精品国产亚洲一区二区麻豆 | 国产精品不卡一区 | 国产老妇av| 国产精品黄色av | 国产成人精品一区二区三区福利 | 免费a v网站 | 久久精美视频 | 一区二区视频在线免费观看 | 五月在线视频 | 日日夜夜天天久久 | 成人小电影在线看 | 国产精品女人网站 | 久久久综合色 | 天天射天天操天天色 | 精品不卡视频 | 99色免费 | 国产一级视频在线免费观看 | 麻豆va一区二区三区久久浪 | 2021久久| 国产精品毛片久久久久久久久久99999999 | 天天色天天色天天色 | 超碰97在线资源站 | 国产精品久久99综合免费观看尤物 | 久久久久久久久久久影院 | 国产精品 国产精品 | 日本激情视频中文字幕 | 免费av网址大全 | 一区二区视频在线免费观看 | 91av视频在线播放 | 国产一区二区在线观看视频 | 在线视频欧美日韩 | 欧美激情视频一区二区三区 | 天天综合操| 91免费观看视频在线 | 欧美性猛片, | 国产视频一级 | 日韩精品欧美精品 | 久久激情五月丁香伊人 | 精品免费观看 | 99视频免费播放 | 91久久国产露脸精品国产闺蜜 | 国产999精品久久久久久绿帽 | www色网站 | 亚洲另类人人澡 | 五月天六月色 | 久久精品视频4 | www免费看片com | 日韩色中色 | 久久成人国产精品入口 | 国产高清视频免费最新在线 | 在线观看你懂的网址 | 91男人影院 | 欧美一级片在线播放 | 麻豆国产精品永久免费视频 | 少妇精69xxtheporn| 碰超人人| 麻豆免费视频观看 | 久久精品99国产精品亚洲最刺激 | 日日干天夜夜 | 奇米影音四色 | 在线观看香蕉视频 | 亚洲国产成人在线播放 | 涩涩色亚洲一区 | 日本中文不卡 | 欧美视频xxx| 一区二区在线电影 | 人人澡人人澡人人 | 日韩精品久久久 | 一级a性色生活片久久毛片波多野 | 日韩av片免费在线观看 | 国产一二区精品 | 欧美在线视频日韩 | 四虎在线视频免费观看 | 中文字幕在线观看三区 | aⅴ视频在线 | 国产手机视频在线观看 | 五月天丁香 | 日本韩国在线不卡 | 国产天天综合 | 91精品免费看 | 国产无吗一区二区三区在线欢 | 国产精品久久久久久久久免费看 | 午夜视频福利 | 91热视频 | av观看久久久 | 综合色播| 日韩精品免费专区 | 国产成人91 | 网站免费黄 | 久久精彩 | 99视频在线看 | 亚洲作爱视频 | 国产原创在线 | av大全在线观看 | 911国产在线观看 | 在线 成人 | 久久久国产精品电影 | 91人人干| 玖玖综合网 | 国产精品99久久久 | 国产精品久久久久久久免费大片 | 日本精品在线视频 | 天天操天天爽天天干 | 国产精品自产拍在线观看蜜 | 日韩在线免费高清视频 | av电影不卡在线 | 国产福利一区二区三区在线观看 | 国产成人一区二区三区久久精品 | 国产中文a | 亚洲一区二区黄色 | 亚洲国产高清在线 | 天天鲁一鲁摸一摸爽一爽 | 免费瑟瑟网站 | 日韩专区在线播放 | 人人草网站 | 麻豆传媒电影在线观看 | 成人黄色大片在线免费观看 | 久久精品国产一区二区三 | 一区二区三区四区五区六区 | 九九视频在线 | 婷婷av网| 中文字幕一区二区三区精华液 | 色综合久久五月天 | 在线天堂中文www视软件 | 国产一区二区日本 | 天天综合网~永久入口 | 国产精品成人在线 | 中文在线a天堂 | 人人澡人人爱 | 精品一区二区在线看 | 久久精品三| 久久久综合 | 在线观看免费版高清版 | 久久美女精品 | 色婷婷www| www九九热| 91精品久久久久久久久久久久久 | 国产中文字幕视频在线观看 | 久久有精品| 四虎成人精品在永久免费 | 日韩久久精品一区二区三区下载 | 国产成人精品在线播放 | 91传媒免费在线观看 | 久久精品99久久久久久 | 日韩精品高清视频 | 免费黄色小网站 | 日韩中文字幕免费电影 | 国产伦理久久精品久久久久_ | 人人爽影院 | 友田真希av| 人人爱爱人人 | 少妇18xxxx性xxxx片 | 一区二区三区四区不卡 | 亚洲精品视频在线观看免费视频 | 国产不卡一二三区 | 国产精品涩涩屋www在线观看 | 麻豆视频91 | 国产精品久久电影网 | 黄色av电影在线观看 | 一区二区三区四区五区在线 | 欧美一级性生活视频 | 美女视频黄是免费的 | 亚洲精品在线电影 | 亚洲每日更新 | 右手影院亚洲欧美 | 国产在线小视频 | www.av在线播放| 日韩电影在线观看一区二区三区 | 亚洲理论在线观看电影 | japanese黑人亚洲人4k | av先锋影音少妇 | 狠狠狠干 | 国产精品九九九九九 | 黄色网址国产 | 免费看国产a | 日韩免费视频 | 成人av在线网 | 在线亚洲天堂网 | 丁香午夜 | 激情开心色 | 日韩视频一区二区三区 | av福利电影 | 在线观看小视频 | 欧美一级片免费播放 | 国产一区二区在线观看免费 | 91成版人在线观看入口 | 欧美久久久影院 | 在线精品国产 | 国产免费a | 在线看91| 国产视频一区二区在线观看 | 久久艹综合 | 久久久久免费网站 | 久久久久电影网站 | 久久影院午夜论 | 黄色99视频 | 狠狠色狠狠色综合日日小说 | 奇米导航 | 丁香电影小说免费视频观看 | 亚洲成人黄色在线 | 久久久麻豆视频 | 9999精品免费视频 | 国产视频一级 | 五月丁婷婷 | 日本久久不卡视频 | 精品国产午夜 | 成人免费 在线播放 | 一区中文字幕电影 | 91cn国产在线 | 久久91久久久久麻豆精品 | 久久综合之合合综合久久 | 国产亚洲婷婷免费 | 免费瑟瑟网站 | 久久天天拍| 天天色天天色天天色 | 久久久久久综合网天天 | 日韩在线精品视频 | 久久久久久久久久国产精品 | av黄色av | 激情欧美一区二区三区免费看 | 久久一区国产 | 精品视频一区在线观看 | 国内丰满少妇猛烈精品播放 | 国产精品视频资源 | www.午夜色.com | 伊人欧美 | 黄色精品视频 | 亚洲国产大片 | 在线观看黄色的网站 | 黄色三级免费网址 | 久久九九精品 | 国产又黄又爽又猛视频日本 | 波多野结衣小视频 | 天天激情站 | 中文字幕 国产视频 | 在线观看日本高清mv视频 | 成人资源在线播放 | 国产午夜三级一区二区三桃花影视 | 国产精品成人久久久 | 日韩网| 视频国产区 | 久久超碰网 | 2019中文在线观看 | 91少妇精拍在线播放 | 久久国产精品二国产精品中国洋人 | 国产精品9区 | 日韩在线视频免费播放 | 日韩电影中文,亚洲精品乱码 | 国内久久精品 | 在线黄色av | 亚洲婷婷在线 | 久草视频免费看 | av免费看在线 | 一区久久久| 在线高清av | 国产一区二区不卡视频 | 日韩av成人免费看 | 97碰在线视频 | 亚洲最新av在线 | 波多野结衣视频网址 | 蜜臀av性久久久久蜜臀av | 欧美极品在线播放 | 91精品国产高清自在线观看 | 亚洲三级黄色 | 国际av在线 | 国产精品久久久久久一二三四五 | 婷婷六月久久 | 婷婷社区五月天 | 黄色www| 999久久久久久久久久久 | 三级黄色大片在线观看 | 三上悠亚一区二区在线观看 | 国产精品一区二区久久精品 | 色国产精品一区在线观看 | 人人网人人爽 | 国产高清黄 | 999久久久免费精品国产 | 久久精品二区 | 91视频91色| 日韩特级黄色片 | 香蕉免费 | 精品久久久久久久久久久久久久久久 | 午夜精品电影一区二区在线 | 国产永久免费 | 日日摸日日爽 | 夜夜天天干 | 成人国产精品电影 | 国产精品久久久网站 | 色婷丁香| 国产日韩视频在线播放 | 91麻豆操 | 国产精品美女免费 | 麻豆国产在线播放 | 黄色大片国产 | 精品99免费 | 成人app在线免费观看 | 久久艹欧美| 丰满少妇久久久 | 三级小视频在线观看 | 国产在线精品一区二区不卡了 | 午夜精品在线看 | 亚洲激情 欧美激情 | 欧洲精品码一区二区三区免费看 | 2019国产精品 | 91久久黄色 | 中文字幕在线免费观看 | 欧美动漫一区二区三区 | 成人免费大片黄在线播放 | 在线中文字幕播放 | 一级黄色毛片 | 亚洲成a人片77777潘金莲 | 免费高清av在线看 | aaa日本高清在线播放免费观看 | 久久精品99国产精品亚洲最刺激 | 精品国产乱码久久久久久浪潮 | 97人人射| 国产精品区在线观看 | 久久官网 | 在线免费色 | 黄色软件在线观看免费 | 国产成人在线一区 | 免费日韩 精品中文字幕视频在线 | 日本丶国产丶欧美色综合 | 在线免费黄| a√国产免费a| 在线亚洲午夜片av大片 | 久久一区二区免费视频 | 国产精品久久久 | 国产黄在线免费观看 | 成年人黄色在线观看 | 久久精品永久免费 | 国产一区成人在线 | 天堂av在线免费观看 | 国产a高清 | 黄色91在线| 国产精品永久在线观看 | 一区二区不卡在线观看 | 久久黄色免费 | 欧美国产日韩一区二区三区 | 亚洲黄色小说网 | 日韩精品久久一区二区 | 麻豆一精品传二传媒短视频 | 香蕉视频导航 | 国产在线美女 | 97超碰人人干 | 日韩免费播放 | 五月婷婷精品 | 亚洲精品9 | 超级碰碰视频 | 乱男乱女www7788 | 91精品国产网站 | 午夜性生活片 | 欧美福利久久 | 欧美男同视频网站 | 国产99精品在线观看 | 久草网视频在线观看 | www.色的| 九色91在线 | 久久视频这里只有精品 | 日韩高清一区在线 | 一区二区三区视频网站 | 日韩中文字幕网站 | 国产在线播放一区二区三区 | 欧美激情综合色综合啪啪五月 | 91色吧 | 91亚洲国产成人 | 国产美女视频免费 | 日韩在线资源 | 一级片在线 | 日韩电影久久久 | 最新av网址在线 | 久久影视精品 | 精品特级毛片 | 毛片在线播放网址 | 精品视频中文字幕 | 精品久久久久久久 | 免费看高清毛片 | 欧美乱码精品一区二区 | 免费视频一区二区 | 国产黄免费 | 久久久久欧美精品 | 色停停五月天 | 国产va饥渴难耐女保洁员在线观看 | 国产一区成人 | 色婷婷综合激情 | 国产欧美高清 | 黄色免费观看网址 | 日批视频 | 中文字幕一区二区三区乱码不卡 | 久草爱| 欧美福利视频 | 九九视频这里只有精品 | 国产欧美精品xxxx另类 | 一区二区三区高清在线 | 六月激情婷婷 | 国产精品久久久久久久久免费看 | 国产在线一区观看 | 亚洲国产精品久久久久婷婷884 | 最新av电影网站 | 国产精品免费在线播放 | 久草视频在线免费 | 热99在线视频 | 国产aa精品 | 91av电影在线 | 欧美一区二区三区在线看 | 99久久99久久精品免费 | 精品v亚洲v欧美v高清v | 特级黄色一级 | 免费看色的网站 | 激情电影在线观看 | 国内精品在线观看视频 | 国产色资源 | a亚洲视频 | 中文字幕在线日 | 欧美色综合天天久久综合精品 | 中文字幕在线观看2018 | 国产一级二级在线观看 | 亚洲视频 一区 | 中文字幕在线免费 | 国产精品爽爽爽 | 天天操天天操天天操天天 | 色婷婷www| 香蕉视频网站在线观看 | 国产不卡视频在线 | 久久精品99久久久久久 | 日韩一区在线免费观看 | 日本乱视频 | 黄色网中文字幕 | 亚洲欧美日韩不卡 | 国产区av在线| 精品久久亚洲 | a级免费观看| 色中文字幕在线观看 | 四虎影视成人永久免费观看视频 | 亚洲一区黄色 | 国产一及片 | 97精品国产97久久久久久久久久久久 | 欧美激情精品久久久久久变态 | 日韩精品视频免费专区在线播放 | 国产麻豆精品95视频 | 免费国产黄线在线观看视频 | 欧美狠狠色 | 日韩成人邪恶影片 | 深夜免费网站 | 久久人人艹 | 免费福利视频导航 | 亚洲一级黄色大片 | 免费高清男女打扑克视频 | 成人国产一区二区 | 99久久精品久久久久久清纯 | 欧美巨大 | 亚洲黄色av一区 | 狠狠搞,com | 国产91在线观看 | 国产精品美女久久久久久2018 | 免费黄色网址大全 | 色www免费视频 | 色资源在线观看 | 91精品视频观看 | 外国av网 | 五月天婷婷丁香花 | 在线免费观看一区二区三区 | 91免费国产在线观看 | 国产精品美女久久久久久免费 | 亚洲男模gay裸体gay | а中文在线天堂 | 日韩字幕 | 青青草视频精品 | 国产h在线播放 | 国产精品视频app | 成人精品影视 | 97超碰在线资源 | 免费网站色 | av不卡免费在线观看 | 欧美极度另类性三渗透 | 高清精品视频 | 国产精品白浆视频 | 国内外成人在线 | 日韩成人免费观看 | 国产精品九九九九九 | 一级淫片a| 水蜜桃亚洲一二三四在线 | 日日干美女 | 婷婷久久精品 | 国产又黄又猛又粗 | 久久精品一区二区三区国产主播 | 99在线免费观看视频 | 国产精品视频永久免费播放 | 少妇bbbb搡bbbb桶 | 日韩免费一级电影 | 久久免费精品一区二区三区 | 久久视频在线看 | 国产精品高清在线 | 亚洲精品玖玖玖av在线看 | 一级黄色在线免费观看 | 日韩免费网址 | 中文字幕在线视频一区二区 | 青草视频网 | 黄色精品久久久 | 久久精品在线 | 国产午夜视频在线观看 | 亚洲h视频在线 | 在线成人小视频 | 国产中文字幕第一页 | 免费欧美 | 午夜精品一区二区三区免费视频 | 国产区网址 | 五月综合色婷婷 | 最近中文字幕完整高清 | 国产精品一区二区三区在线免费观看 | 免费观看国产视频 | 国产亚洲精品免费 | 日日夜色 | 91看片在线免费观看 | 人人添人人澡 | 欧美日韩xx | 久久久穴 | 国产乱码精品一区二区三区介绍 | 麻豆视频免费观看 | 国产精品免费看 | 国产资源网站 | 国产精品剧情在线亚洲 | 国产午夜精品一区二区三区四区 | 黄网在线免费观看 | 成年人毛片在线观看 | 在线a人v观看视频 | 日韩午夜电影院 | 中国黄色一级大片 | 国产精品福利视频 | 成年人免费看的视频 | 天躁狠狠躁 | 国产中文字幕大全 | 91av看片| 日韩精品一区二区三区视频播放 | 中文字幕第| 在线观看国产永久免费视频 | 亚洲精品免费在线 | mm1313亚洲精品国产 | 91在线看片| 午夜电影中文字幕 | 色综合天天天天做夜夜夜夜做 | 五月激情电影 | 日韩中文字幕视频在线观看 | 99久久久国产精品免费99 | 久久久久亚洲精品男人的天堂 | 国产高潮久久 | 天天射天 | 日日干精品 | 亚洲一区二区高潮无套美女 | 欧美日韩国产精品一区二区亚洲 | 日本精品视频在线播放 | 超碰在线1 | 国产黄色精品 | av三级在线播放 | 中文字幕一区二区三区久久 | 丁香五月亚洲综合在线 | 成人97视频一区二区 | 国产一线天在线观看 | 成人h在线 | 久久综合色影院 | 国产精品午夜在线 | av+在线播放在线播放 | 欧美在线视频第一页 | 日韩免费高清在线观看 | 欧美天天综合 | 久久污视频 | 亚洲精品免费在线播放 | 中文字幕中文字幕 | 日韩电影在线观看一区二区 | 五月激情视频 | 国产69精品久久99的直播节目 | 国产午夜三级一区二区三 | 国产精品免费久久久久久久久久中文 | 不卡av在线免费观看 | 亚洲综合国产精品 | 日韩欧美在线免费 | 91亚洲精品久久久久图片蜜桃 | 国产传媒中文字幕 | 美女av免费看| 日本精品一区二区三区在线观看 | 一区二区三区播放 | 色a4yy| 日韩美女黄色片 | 亚洲视屏| 2020天天干夜夜爽 | 色视频在线免费 | 六月丁香在线观看 | 欧美精品久久久久久久久老牛影院 | 日韩亚洲在线视频 | 不卡在线一区 | 麻豆久久精品 | 黄色片免费在线 | 日韩一区二区免费播放 | 日韩在线理论 | 亚洲成人av一区 | av电影一区 | 超碰人人做 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 天天色天天操天天爽 | 在线观av | 在线观看国产成人av片 | 免费电影播放 | 免费成人在线观看 | 日日草视频 | 中文字幕有码在线播放 | 久久久久国产精品免费 | 久久久久久久久久久久国产精品 | 国产在线看一区 | 91精品国产综合久久婷婷香蕉 | 国产精品自产拍在线观看桃花 | 福利视频网址 | 中文在线字幕观看电影 | 久久久精品免费看 | 人人舔人人射 | 久久99电影 | 亚洲特级毛片 | 久久精品国产精品亚洲精品 | 日韩欧美aaa | 国产高清视频在线观看 | 中文字幕国语官网在线视频 | 亚洲国产精品人久久电影 | 91成人短视频在线观看 | a级一a一级在线观看 | 免费美女av| 999国产在线| 综合久久精品 | 超碰在线中文字幕 | 四虎成人免费观看 | 91精品在线视频观看 | 免费成人短视频 | 精品久久一区二区三区 | 国产一区黄色 | 国产伦精品一区二区三区高清 | 精品免费观看视频 | 一级成人网 | 免费看的黄网站 | 久久精品高清视频 | 日日夜夜天天 | 亚洲一区美女视频在线观看免费 | 黄色精品久久久 | 成人久久18免费网站麻豆 | 91丨九色丨蝌蚪丨对白 | 国精产品一二三线999 | 欧美精品乱码久久久久久 | 黄色中文字幕 | 日韩欧美第二页 | 亚洲精品国内 | 国产伦精品一区二区三区四区视频 | 欧美午夜性生活 | 日本69hd| 999久久久久久久久6666 | 免费高清影视 | 中文字幕 二区 | 在线国产不卡 | 精品一区二区三区在线播放 | 91精品国产欧美一区二区成人 | 色网影音先锋 | 在线观看视频国产一区 | 天天爽夜夜爽人人爽一区二区 | 国产精品久久精品国产 | www.伊人网 | 国产无遮挡又黄又爽在线观看 | 成人久久网 | 一区二区三区播放 | 久久久久亚洲国产 | 天天视频色 | 一区二区视频在线观看免费 | www91在线观看| 精品一区二区视频 | 91亚洲国产 | 亚洲mv大片欧洲mv大片免费 | 国产打女人屁股调教97 | 日韩在线视频播放 | 色插综合 | 成人免费视频观看 | av在线播放不卡 | 日本激情动作片免费看 | 97电影在线看视频 | 亚洲精品伦理在线 | 久草在线视频在线观看 | 欧美视频国产视频 | 精品一区二区免费视频 | 色婷婷狠狠五月综合天色拍 | 国产精品综合在线观看 | 国产91对白在线播 | 国产亚洲久一区二区 | 亚洲精品动漫在线 | 免费网站看v片在线a | 热久久免费视频精品 | 中文字幕高清免费日韩视频在线 | 国产99久久久国产精品成人免费 | 麻豆成人精品 | 久久国产综合视频 | 91精品无人成人www | av大全在线| 男女拍拍免费视频 | 久久精品国产一区二区电影 | 亚洲男模gay裸体gay | 国产成人精品在线播放 | 精品夜夜嗨av一区二区三区 | 婷五月天激情 | av免费观看网站 | 91成人精品一区在线播放 | 一 级 黄 色 片免费看的 | 中文字幕在线观看网址 | 免费高清看电视网站 | 96亚洲精品久久久蜜桃 | 久久久 精品| 中文字幕国产一区 | 99视频免费看 | 99se视频在线观看 | 91亚洲精品久久久蜜桃 | 久久永久免费视频 | 亚洲精品久久久久久中文传媒 | 黄色亚洲大片免费在线观看 | 久草在线视频在线 | 又黄又爽的视频在线观看网站 | 91av在线播放 | 国产黄色理论片 | 一区二区三区免费在线观看视频 | 99re6热在线精品视频 | 日本99精品 | 天天透天天插 | 久久精品美女视频 | 成人一级在线观看 | 日韩欧美视频一区二区三区 | 黄色毛片一级 | 91人人网 | 99精品视频在线播放免费 | 黄色片免费电影 | 国产精品第三页 | 国产高清精品在线观看 | 欧美少妇影院 | 黄色免费网战 | 不卡视频一区二区三区 | 五月天免费网站 | 久久99国产精品视频 | 久久婷五月 | 国产精品永久 | 中文字幕无吗 | www.亚洲精品 | 97超碰精品 | 日韩高清av在线 | av看片在线观看 | 久久午夜视频 | 欧美大码xxxx | 99精品免费久久久久久久久 | 中文字幕在线观看三区 | 国产999精品视频 | 久久免费久久 | www.国产毛片 | 欧美另类高清 | 丁香婷婷综合激情五月色 | 国产福利av | 337p日本大胆噜噜噜噜 | 探花视频免费在线观看 | av片一区二区 | 久草精品视频 | 91在线看网站 | 久草在线综合 | 六月丁香激情网 | 婷婷5月激情5月 | 日韩欧美精品一区二区三区经典 | 天堂网中文在线 | 久久人人爽人人人人片 | 欧美日韩亚洲在线观看 | 最近日本字幕mv免费观看在线 | www.97色.com | 亚洲成色| 亚洲精品乱码久久久久久蜜桃欧美 | 久久久久久黄色 | 探花视频免费观看高清视频 | 天天插狠狠干 | 国产亚洲无| 久久综合五月 | 手机av观看| 91最新视频在线观看 | 亚洲dvd | 色激情五月 | 国产日本三级 | aa级黄色大片 | 在线之家免费在线观看电影 | 一本一本久久a久久精品牛牛影视 | 不卡的av在线 | 粉嫩av一区二区三区四区五区 | 国产精品乱码久久久久久1区2区 | 国产一区二区三区免费在线观看 | 一区二区三区高清不卡 | 久久久免费观看视频 | 欧美日韩亚洲精品在线 | 免费激情在线电影 | 黄色三级免费观看 | 17婷婷久久www| 91精品国产网站 | 91麻豆精品国产91久久久使用方法 | 久久伊人精品一区二区三区 | 久草免费在线观看视频 | 手机看片国产 | 国产黄色片一级 | 亚洲精品乱码久久久久久高潮 | 97av在线视频免费播放 | 九九热有精品 | 成人av影视 | 成人cosplay福利网站 | 国产精品成人国产乱 | 午夜久久视频 | 人人爽人人爽人人片 | 91精品久久久久久久久久入口 | 午夜视频在线观看一区 | 91看片麻豆 | 国产96在线 | 欧美激情va永久在线播放 | 992tv又爽又黄的免费视频 | 免费国产一区二区 | 在线视频欧美精品 | 午夜精选视频 | 91精彩视频在线观看 | 97精品国产97久久久久久 | 久久99热国产 | 少妇高潮流白浆在线观看 | 亚洲国产无 | 国产免费二区 | 午夜国产在线 | 亚洲精品在线资源 | av久久在线| 激情婷婷 | 免费观看成人网 | 91九色在线视频观看 | 狠狠操狠狠插 | 免费观看性生交 | 国产一区二区手机在线观看 | 四虎国产精品永久在线国在线 | 国产手机视频在线播放 | 欧美日韩免费看 | 国产精品美女999 | 久久在线免费观看视频 | 亚洲午夜久久久影院 | 日韩在线观看视频一区二区三区 | 亚洲精品理论 | 中文字幕在线高清 | 色香网 | 免费观看完整版无人区 | 99久久精品免费看国产免费软件 | 成人在线一区二区三区 | 日韩精品一区在线播放 | 天天操天天操天天操 | 射射射av | 成人a视频在线观看 | 最近免费中文视频 | 国产精品99久久久久久小说 | 日韩一级黄色片 | 综合色中文 |