ScreenMatch适配方案和PxCook配合使用踩坑记录
首先聲明:我會(huì)踩坑,是因?yàn)槲覍?duì)Android屏幕適配和PxCook使用了解的不到位,并不是說他們本身存在什么問題。。。
先說說PxCook(像素大廚),真是個(gè)好東西,UI設(shè)計(jì)師給到開發(fā)人員的設(shè)計(jì)圖,都是px值標(biāo)注,而使用PxCook可以自動(dòng)將px轉(zhuǎn)成Android開發(fā)適用的dp值,并且可以切換不同dpi查看對(duì)應(yīng)的dp值。
關(guān)于ScreenMatch,關(guān)于他的用法,網(wǎng)上已經(jīng)有很多介紹了,我就不再多少,接下來,主要說說他們兩個(gè)如何配合使用;
?
在ScreenMatch配置文件中,需要填寫base_dp(基準(zhǔn)值)、match_dp(需要適配的值)、ignore_dp(不需要適配的值)、、、
當(dāng)時(shí)就讓我很懵逼,base_dp到底應(yīng)該填多少,設(shè)計(jì)圖支持這么多種尺寸(mdpi、hdpi、xhdpi、、、)。
?
重點(diǎn)建議1:設(shè)計(jì)圖只需要選擇一種dpi就可以,然后右邊就會(huì)自動(dòng)計(jì)算出UI圖的對(duì)應(yīng)寬高dp值,
重點(diǎn)建議2:ScreenMatch? 最小寬度適配符,選擇寬和高中最小的尺寸:例:1280dp×720dp,選擇720dp,不管是橫屏設(shè)備還是豎屏設(shè)備都要選擇寬高最小值。
重點(diǎn)建議3:將選好的最小dp值填入base_dp,之后就根據(jù)這個(gè)尺寸下的UI圖標(biāo)注的dp值編寫界面。
然后將想要適配的屏幕對(duì)應(yīng)的最小寬度dp填入match_dp中。
特定設(shè)備屏幕適配:需要自己去計(jì)算需要適配的最小限度符大小,
使用adb 命令:
adb shell wm density? ?獲取設(shè)備屏幕density值 (例:240)
adb shell wm size? ? ?獲取屏幕分辨率? ?(例1920×1080)
計(jì)算? ? sw = 1080 /(240/160)= 720? ? ?至于為什么除160? ?自己查一哈?
所以將720填入match_dp中。
?
AS有UI預(yù)覽功能,但是我在開發(fā)TV界面時(shí),發(fā)現(xiàn)預(yù)覽只能選擇1080p Xhdpi? ?和 720p tvdpi兩種,總是預(yù)覽界面與顯示不匹配,原因是? 我沒有適配 xhdpi尺寸,xhdpi對(duì)應(yīng)的最小限定符值為 540dp。當(dāng)生成value-sw540dp資源文件時(shí),預(yù)覽界面與實(shí)際運(yùn)行的效果相差無幾。
重點(diǎn)建議4: 一旦選定base_dp值后,不要再去切換PxCook的dpi。
?
之后,pxCook顯示多少dp值,xml就使用多少dp值,運(yùn)行后 系統(tǒng)會(huì)自動(dòng)根據(jù)設(shè)備的density值選擇合適的value資源文件。
總結(jié)
以上是生活随笔為你收集整理的ScreenMatch适配方案和PxCook配合使用踩坑记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贵州省电子计算机学校,贵州省电子工业学校
- 下一篇: 物联网 FOTA升级的必要性