日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

drawable和values的加载规则

發(fā)布時間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 drawable和values的加载规则 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Google搞了一大套hdpi、xhdpi之類的這些東西,簡單說來,就是為了讓我們輕松實現(xiàn)“與設(shè)備密度無關(guān)的視覺大小一致性”,注意這里的“視覺大小一致性”,就是說無論是在手機、低分辨率平板、高分辨率平板上,一個控件或者一個圖片在物理尺寸上都是一樣大小的。


drawable目錄:先高再第

我們經(jīng)常會給應(yīng)用程序切幾套圖片,放在drawable-mdpi、drawable-hdpi、drawable-xhdpi等目錄下面。當(dāng)應(yīng)用在設(shè)備對應(yīng)dpi目錄下沒有找到某個資源時,遵循“先高再低”原則,然后按比例縮放圖片。


比如,當(dāng)前為xhdpi設(shè)備,并且只有以下幾個目錄,則drawable的尋找順序為:
xhdpi(2,當(dāng)前設(shè)備對應(yīng)的dpi)-->xxhdpi(3,比當(dāng)前高的)-->xxxhdpi(如果沒有更高的了)-->drawable-->hdpi(1.5,比當(dāng)前低的)->mdpi(1.0,標(biāo)準(zhǔn)),如果在xxhdpi中找到目標(biāo)圖片,則壓縮2/3來使用,如果在mdpi中找到圖片,則放大2倍來使用。

這很好理解,如果我們按規(guī)則放置兩張圖片,mdpi中為48x48,xxhdpi中為144x144,那么不管我們最后從哪個目錄拿到圖片,在xhdpi設(shè)備上顯示的像素大小都是96x96,只是一個被拉伸而來,一個被壓縮而來。由于xhdpi定義了96個像素點的物理尺寸,那么這張圖的物理尺寸實際就被定下來了。?


那么,一個結(jié)論就是,對于期望保持視覺大小一致的那部分圖片而言,如果你也能接受android為你拉伸/壓縮圖片導(dǎo)致一定程度的模糊或者銳化,那么這些圖片是不需要在每個drawable目錄下都制作一份的。以現(xiàn)在主流設(shè)備來說一般可能在drawable-xxhdpi放置一份即可,這樣可以盡量避免Android為我們放大圖片所導(dǎo)致的OOM。


當(dāng)然,在某些情況下,我們會主觀希望打破android提供的“視覺大小一致”這種機制,此時我們就可以建立另外的drawable目錄來放置需要變化的圖片了。


values目錄:就近匹配

values目錄用來放置colors.xml,dimens.xml,strings.xml等,也可以根據(jù)屏幕密度設(shè)置特定的values目錄讓滿足設(shè)定的設(shè)備進(jìn)行加載,比如values-mdpi、values-hdpi、values-xhdpi、values-xxhdpi等等,然后每個目錄放置一個demins.xml,使不同分辨率的設(shè)備應(yīng)用不同的尺寸設(shè)置。
當(dāng)應(yīng)用設(shè)備在當(dāng)前dpi對應(yīng)目錄的demins.xml中沒有找到目標(biāo)條目時,采用“就近匹配”原則(注意,和上面drawable匹配原則是不一致的)。比如,當(dāng)前為hdpi設(shè)備,并且只有以下幾個目錄,則values的尋找順序為:?hdpi->xhdpi(向上一個)->mdpi(再下一個)->values,即先向上級dpi目錄查找,再向下級dpi目錄查找,最后一路向下查找到values目錄。

那么,我們需要將mdpi目錄下的值都乘以相應(yīng)的倍數(shù)來放置在其他目錄下面嗎?

答案當(dāng)然是否定的,由于我們對期望屏幕密度無關(guān)的值都定義為了dp單位,無論android從哪個目錄最終找到該值,都會直接應(yīng)用這個值與當(dāng)前設(shè)備的密度來計算最終的尺寸。


那么,既然最后都要找到values,并且能夠保證視覺大小一致性,那何必再添加其他values分辨率目錄呢?答案是在某些情況下,我們主觀希望某些尺寸不去保持視覺一致性。例如一個Button,在手機上那么大剛好,但如果在平板設(shè)備上,它還是和在手機上看起來一樣大,那它就顯得有點小了。

也就是說,我們應(yīng)該把希望在任何設(shè)備上視覺大小都一樣的尺寸都放置在values目錄下并且只放置這一份,其他需要有變化的尺寸則放置在對應(yīng)目錄下即可。


更推薦采用values-xhdpi-2560x1600,我們很容易通過這里的屏幕分辨率+dpi計算得到該設(shè)備的物理尺寸,顯而易見這是一個平板設(shè)備,如此我們的改動便不至于影響同DPI的低物理尺寸設(shè)備(手機),而物理尺寸差不多的設(shè)備是可以共用一套dimens.xml的。

那么,如果當(dāng)前設(shè)備為xhdpi-1184x800,當(dāng)前目錄有values-xhdpi-1184x800,values-xhdpi-1184x960,values-xhdpi-1184x720,android的尋找順序則是:?
xhdpi-1184x800->values-xhdpi-1184x720->values-xhdpi

只向低于自己分辨率的目錄下尋找,直到values-xhdpi,如果依然沒有找到,按照之前的順序繼續(xù)進(jìn)行。?
也就是說,對于同dpi的多臺不同分辨率平板設(shè)備,如果布局足夠通用,我們可以只針對最低分辨率設(shè)計dimens即可,上面的例子中,則是values-xhdpi-1184x720。?
我們還可以將這個分辨率寫得更低,低到我們有把握:如果再出現(xiàn)比這個分辨率更低的設(shè)備,那么它的物理尺寸一定滿足即使采用values-xhdpi中針對手機物理尺寸設(shè)計的大小也沒有問題。

轉(zhuǎn)載于:https://www.cnblogs.com/baiqiantao/p/1e3e9430ff58c18995fe1eb91ce6e5e2.html

總結(jié)

以上是生活随笔為你收集整理的drawable和values的加载规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲欧美日韩综合一区二区 | 小婕子伦流澡到高潮h | 美女黄免费 | 国产女人在线 | 久久亚洲av永久无码精品 | 成人女同av免费观看 | 91视频论坛 | 中文字幕国产精品 | 国产激情图片 | 午夜天堂影院 | 久久99视频精品 | jizz在线观看视频 | 在线免费观看污网站 | 久久午夜福利电影 | 日韩欧美中字 | 中文字幕一区二区三区四区不卡 | 男女羞羞动态图 | 久久午夜鲁丝片 | 日本新japanese乱熟 | 久久久久久色 | 麻豆社| 一区二区视频播放 | 日韩精品免费观看 | 国产一线av | 国产免费自拍视频 | 亚洲夜夜夜 | 亚洲成人动漫在线观看 | 天堂成人在线观看 | 日本黄色性视频 | 午夜在线观看免费视频 | 污污内射在线观看一区二区少妇 | 日韩精品成人一区二区在线 | 人人爽久久涩噜噜噜网站 | 久久久永久久久人妻精品麻豆 | 精久久久久久 | 国产成人三级一区二区在线观看一 | 美女被男人c | 免费观看成年人网站 | 国产在线一区不卡 | 中文字幕日韩精品亚洲一区小树林 | 国产超碰精品 | 一道本一区二区 | 久久久久九九九九 | av免播放器 | 两女双腿交缠激烈磨豆腐 | 日本精品一区二区在线观看 | 成人午夜淫片免费观看 | 成人免费视频软件网站 | 五月网 | 久操资源网 | 国产精品69久久久久孕妇欧美 | 玖玖玖国产精品 | 久草资源福利 | 成人黄色免费在线观看 | 久久国产成人精品国产成人亚洲 | 中文字幕23页 | av爽妇网| 成人在线综合 | 精品97人妻无码中文永久在线 | 玩弄丰满少妇xxxxx性多毛 | 精品国产aⅴ麻豆 | 成人日皮视频 | 国产精品一区二区亚洲 | 无码人妻精品一区二区三区蜜桃91 | www,久久久 | 亚洲色图20p| 成人在线欧美 | 欧美巨乳美女 | 久久涩涩 | 欧日韩不卡视频 | 91九色成人 | 国产情侣久久久久aⅴ免费 caoporn成人 | 亚洲成av人片一区二区梦乃 | 草草草av| 国产精品正在播放 | 欧美性bbw | 超碰在线人人干 | 精品一区二区三区在线免费观看 | 黄色专区| 中文字幕乱码一二三区 | 亚洲一区二区三区四区在线播放 | 老熟妇精品一区二区三区 | 欧洲成人午夜精品无码区久久 | 亚洲九九精品 | 美女搡bbb又爽又猛又黄www | 在线看黄的网站 | 毛茸茸亚洲孕妇孕交片 | 青娱乐在线免费视频 | 用力挺进新婚白嫩少妇 | 色欲久久久天天天综合网 | 黄瓜视频色版 | 欧美精品在线一区 | 日韩一级视频 | 国产伦精品一区二区三区视频黑人 | 久久99精品久久久久久噜噜 | 人人插人人 | 日韩中文字幕一区二区 | 樱桃视频一区二区三区 | 粉嫩av国产一区二区三区 |