日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

android屏幕適配sw規則

作者:jzlhll123 更新時間: 2022-08-30 編程語言
## 獲取屏幕寬度,截圖來看尺寸也行
adb shell screencap -p /sdcard/a.png
adb pull /sdcard/a.png
#或者
adb shell dumpsys display| grep StableDisplay       

#獲取density
adb shell wm density

adb shell dumpsys display| grep StableDisplay       
  mStableDisplaySize=Point(1024, 600)
      StableDisplayWidth=1024
      StableDisplayHeight=600

 adb shell wm density
Physical density: 160

通過獲取到的屏幕短的邊長即(sw, smallWidth),
比如我司的機器有三款,分別為:
10寸,1280800 density 160
7寸,1024
600 density 160
6寸,960*480 density 160

計算sw dp公式:160*sw/density
即,
分別目標 為:sw800dp, sw600dp, sw480dp。

對于xml的sw規則而言,他的規則是:
規則:優先匹配進入到能容許的sw尺寸文件;如果不存在,則往下縮小進入,直到匹配到停止,或者墜入默認values文件夾。
如果你寫了sw240dp, sw320dp的資源,基本他就不會再進入到默認的values。 因為他確實已經十分的小,任意的sw機器基本能進入。

舉例:你有5個文件夾,分別為sw1000dp, sw800dp, sw600dp, sw480dp, sw240dp.

從高的嘗試匹配,比如去逐漸縮小,比如我的7寸機器,不能進入sw1000dp;不能進入800,只能進入sw600dp,則他會優先匹配到sw600dp里面的資源。
同樣的,我的6寸會進入到sw480dp。

但是我現在想以最少代碼來編寫,以及默認的values我們還沒有說。

比如我只創建默認values。再創建sw600dp,沒有其他目錄。
對于我的3款機器,10寸和7寸都往sw600dp里面適配進去;而6寸則由于本身是480,進不去,只能跌入到默認。

速記:

  1. 計算sw 目標文件夾dp公式:160*sw/density
  2. sw的規則是胖子過門檢測機,從默認的values->sw小dp->sw大dp的順序,一直到過不去的那個門,退回1個,就是他能進的門,即能匹配到的文件夾。

原文鏈接:https://blog.csdn.net/jzlhll123/article/details/125170986

欄目分類
最近更新