有時使用者在使用APP時,會調節系統的字型大小,如果我們的應用APP沒有做相關處理,會造成UI介面的錯亂,處理辦法有兩種,我們先來看下Android中有關sp的描述:
Scale-independent Pixels – This is like the dp unit, but it is also scaled by
the user’s font size preference. It is recommend you use this unit when
specifying font sizes, so they will be adjusted for both the screen density
and the user’s preference.
“Android sp單位除了受螢幕密度影響外,還受到使用者的字型大小影響,通常情況下,建議使用sp來跟隨使用者字型大小設定。除非一些特殊的情況,不想跟隨系統字型變化的,可以使用dp”。按照這麼說,佈局寬高固定寫死的地方應該統一用dp顯示字型,因為一旦使用者在設定中調大字型,寬高寫死的佈局顯示就亂了。
這種方式只能解決使用了dp的字型,比較局面,要是想所有字型都不允許隨系統調節而發生大小變化,要怎麼辦呢?利用Android的Configuration類中的fontScale屬性,其預設值為1,會隨系統調節字型大小而發生變化,如果我們強制讓其等於預設值,就可以實現字型不隨調節改變.
可以在BaseActivity中加入如下程式碼即可解決
關鍵程式碼
最後實現不變形APP頁面效果
最新評論