Android dp方式的螢幕適配工具使用(Android Studio外掛方式)

小鴻洋發表於2018-08-30

最新最全文章(2018-08-25):https://blog.csdn.net/fesdgasdgasdg/article/details/82054971

dp方式螢幕適配原理請看:http://blog.csdn.net/fesdgasdgasdg/article/details/52325590

                                            http://download.csdn.net/download/fesdgasdgasdg/9913744

bat批處理檔案的使用方式請看:http://blog.csdn.net/fesdgasdgasdg/article/details/78107653

外掛原始碼請看:https://github.com/mengzhinan/ScreenMatch

 

為了使用方便,我把雙擊bat的方式改成了在Android Studio中的專案上右鍵彈出選單的方式。選擇選單即可完成所有的工作,原理和bat方式一樣。

使用步驟如下:

1、下載安裝。

點選Browse repositories...去搜尋安裝,安裝好後即可看到ScreenMatch外掛,右側有描述資訊和相關連線。

 

2、調起選單。

安裝好後,在專案的任意目錄或檔案上右擊選單(或按快捷鍵),即可看到ScreenMatch選項。

 

3、選擇在哪個module下執行適配。

即基於哪個module下的res/values/dimens.xml檔案作為基準dimens檔案,生成的其他尺寸dimens檔案放在哪個module下。

 

選擇一個,點選確定。

 

 

如果無誤,則會有成功提示,如上圖。完成了,使用就這麼簡單。

 

4、提供預設dimens檔案樣例。

在專案的根目錄提供了一個預設的dimens.xml檔案樣例,怕你不知道怎麼寫,或者懶。如果不需要,可以刪除。在後面講到的配置檔案中可以配置是否生成。

 

5、生成配置檔案。

生成了配置檔案,如果刪除了或者沒有建立,則所有的適配都是用預設值,預設值請看原始碼。

 

6、配置檔案詳解。



#
# 手機widthDP基準值,一般都是360dp,不建議更改,除非你對螢幕適配原理有深刻的見解。否則不給是或者給360,程式內的預設值為360

base_dp=360

 


# 你還有哪些widthDP值需要適配,多個值以英文逗號分隔。如果算出來的widthDP值有小數,取整。比喻411.948,則取411
# 系統預設適配的widthDP值為: 384,392,400,410,411,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365
match_dp=

 


# 如果你覺得系統預設適配的某些值不想要,就在此設定,下次適配時會忽略這些值。多個值以英文逗號分隔。
ignore_dp=

 


# 專案根目錄中哪些目錄不是module或者你不想讓他在Dalog中顯示,就在此設定。多個值以英文逗號分隔。
# 系統預設忽略了這些目錄:    .gradle,gradle,.idea,build,.git
ignore_module_name=

 


# 請設定預設處理和存放dimes適配檔案的module。
# 如果你後面設定了不彈出Dialog,則適配時系統預設取這個module路徑處理適配操作。
match_module=app

 


# 是否不彈出適配時的選擇對話方塊,使用上面的match_module預設值。
# 此處賦值為  true 或者 false,預設值為false,即彈出對話方塊。
not_show_dialog=false

 


# 是否不再生成專案根目錄預設的dimens樣例檔案?怕你不會寫,所以我給你生成了
# 此處賦值為   true 或者 false,預設為false,即生成。
not_create_default_dimens=false

 


# 是否同時適配sp字型。因為我怕字型也跟著xxxdp/360dp這樣的比例縮放不準確。
# 此處賦值為  true 或者 false,預設值為true,即sp和dp一樣,都等比縮放。此處待研究和驗證。
is_match_font_sp=true

 

//===以下更新===============================================================

# 關於生成的dimens.xml適配資料夾,你是想用values-wXXXdp 還是 values-swXXXdp 格式?
# 通過對官網文件的查閱,sw意思是smallest width dp的含義,即始終使用最小寬度 dp 值。
# 這樣做的好處是,可以解決手機橫豎屏切換時到處的意想不到的bug出現,即某些view的寬高尺寸會放大一倍。
# 比喻:你手機的widthDP=360dp,heightDP=640dp。
# 如果豎屏時手機尋找values-w360dp或values下預設的360dp的dimens.xml檔案值;
# 如果旋轉手機為橫屏模式,手機會尋找values-w640dp目錄中的dimens.xml檔案值;
# 故,導致UI發生變化了。
# sw即表示無論是橫屏還是豎屏,手機系統都會使用最小width dp值;
# 即上例中,橫豎屏時都使用values-sw360dp或values下預設的360dp的dimens.xml檔案值。
# 下面配置項的值如果為false,則表示你只想生成values-wXXXdp格式,如果你的app不涉及到頁面橫屏。
# 不給值或值為true,表示生成values-swXXXdp格式。
# 預設值為true。
create_values_sw_folder=true


如果你發現你的專案裡面的screenMatch.properties配置檔案中沒有上述某些值,
則請刪除你的配置檔案,右鍵專案執行一遍外掛,則會再次生成最新的配置。


關於預設的dimens.xml檔案內容的問題。這些基礎dimen項,難道自己手寫?
我早已經給你們提供了模板檔案,在你專案的根目錄,
與screenMatch.properties配置檔案並列的screenMatch_example_dimens.xml檔案。
你可以把此screenMatch_example_dimens.xml模板檔案更名為dimens.xml複製到....src/main/res/values下,
或者更新已有的....src/main/res/values/dimens.xml檔案內容。

相關文章