華為手機切換解析度,導致布局變大變小甚至混亂的問題

2021-10-08 09:37:42 字數 774 閱讀 4512

1、如果碰到跟標題一樣類似的問題的同學,先看一篇文章:(

2、然後我再說我新接手專案中遇到的問題 ,在專案中的工具類displayutils中有這麼個方法,請看注釋2

/**

* 系統設定"顯示大小"時原有ui樣式保持不變:

* * 1、當調節手機系統"顯示大小"【調大】的時候,相應的dpi會變大【dp = (dpi/160) * px】,此時dp就會變大,所以相應的ui布局就會變大。

* 2、當調節手機系統"解析度"【調小】的時候,相應的dpi會變小【比如由480-->320】。如果此時使用技術手段使dpi保持不變,那麼相同的dp就會占用更多的px,所以ui布局就會變大。

*/public static void setdefaultdisplay(context context)

}

然後我再說我新接手專案中,在所有activity的基類中都複寫了乙個方法,強制dpi不變:
override fun getresources(): resources 

}, res.displaymetrics)

return res

}

此方法導致華為手機切換解析度的時候,dpi不變,因為dpi不變,因此在不同解析度上顯示的大小肯定不一樣,這問題攔了我一天,解決不難,注釋掉就行,找到問題太難了。

幸好有前面大佬的一篇文章給我提示,或者說我這個前任寫**的時候全部照抄了那篇文章,但是又抄的不倫不類,給我留了乙個大坑,幸好現在解決了。

手機螢幕解析度

解析度指螢幕影象的精密度,亦即顯示屏所能顯示的畫素的多少。畫素 所有的畫面都是由乙個個小點組成,這些小點就是畫素。螢幕解析度通常由橫向畫素個數 豎向畫素個數表示。常見的手機螢幕顯示級別有vga hvga qvga wvga等。其中vga最早是ibm計算機的一種顯示標準,逐漸演變為解析度640 480...

手機常用解析度

手機常用解析度 vga 640 480 標準 color red qvga 320 240 quarter vga,意思是vga解析度的四分之一 hvga 480 320 half size vga,意思是vga解析度的一半 wvga 800 480 854 480 wide vga color m...

獲取手機螢幕解析度

獲取手機螢幕解析度的類 displaymetrics dm new displaymetrics getwindowmanager getdefaultdisplay getmetrics dm 獲得手機的寬頻和高度畫素單位為px string str 手機螢幕解析度為 dm.widthpixels...