#頭條創作挑戰賽#
前言屏幕适配一直作為Android開發中的痛點,對于開發者來說,适配形色各異的手機屏幕确實很頭疼,今天小編就目前主流的三種屏幕适配方法進行詳細講解,希望能給大家帶來更好的選擇。
一、屏幕适配是什麼?由于安卓系統的開放性,不同的廠家都可以根據自己的需要修改Android系統,手機屏幕尺寸也各不相同,對于用戶來說可以有不同的選擇,但是對于軟件開發者而言确實很頭痛,一個軟件需要同時适配不同尺寸的屏幕,确保給用戶帶來更好的體驗。
二、主流适配1.寬高限定符适配寬高限定符适配也可以叫屏幕分辨率适配,需要在res文件下創建各種針對不同屏幕分辨率對應的values文件夾。
編輯
當軟件運行在手機上時,系統會根據手機的屏幕分辨率去找對應的values文件,如手機分别率是1280X800,這個時候系統就會加載values-1280x800的dimens文件,這樣設計圖上設計的控件在手機上顯示就正常了。達到了适配的需求,簡而言之就是,需要創建不同分辨率的文件夾,系統會根據當前手機的分辨率去加載對應文件。如果手機的分辨率種類太多,就會造成需要創建的文件較多,導緻apk包變大。而且隻有屏幕分辨率和文件完全匹配才能進行适配。
2.SmallestWidth适配SmallestWidth适配可以稱為最小寬度适配。不管屏幕是橫屏還是豎屏,都會以最小的那一邊作為寬度進行适配。
SmallestWidth适配是以dp為單位進行适配,如設計圖寬度為375,以最小寬度進行換算。
編輯
編輯
當手機寬度為300dp時,設計圖上為375dp時,将300dp等分為375份,每一份對應的就是0.8dp。當手機為720x300時就會引用sw300dp文件的dimens文件進行适配。如果當手機寬度為311dp時,系統如果找不到sw311dp文件,就會找最小最接近的文件進行适配sw310dp文件。這樣确保即使遇到手機分辨率對應的文件不存在時,也能對屏幕進行适配。
3.今日頭條适配在屏幕适配時有一個公式為 dp = px/ density。
px: 像素,在分辨率1080*1920的屏幕,單位就是px,橫屏上有1080個物理像素點,豎屏上有1920個物理像素點。
dp:單位,Android上計算控件寬高的單位。
density:每個手機上固定的值。為1dp所占有的像素點。
通常情況下,不同分辨率的手機對應的px不同,經過計算後的dp值也不同,這就出現同一個軟件中的控件在不同的手機上對應的dp值不同。就會出現展示的差異。如果保證不同分辨率的手機能正常顯示相同dp寬高的控件。動态改變density的值,确保px與density的比值不變。今日頭條的适配方法就是通過改變density的值來确保控件在不同分辨率下依然能夠正常顯示。
通過以上三種适配方法的簡單對比,可以為開發者根據業務需求的不同進行選擇。如有不對之處,歡迎批評指正。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!