1. 程式人生 > >Android開發之UI佈局優化全面總結

Android開發之UI佈局優化全面總結

Android開發最常見的問題之一是螢幕碎片化太嚴重,所以我們在寫佈局的時候儘量不能適應硬編碼去佈局。

佈局優化在開發過程中起到至關重要的作用。

1.合用weightSum屬性和layout_weight屬性

通常大家所熟知的只有layout_weight屬性,是指按比例佔用父容器尺寸,這樣做有個預設值是指所有子控制元件的layout_weight之和為父容器的總值。

但是當我們不需要使用子控制元件鋪滿整個父容器的時候,就顯得有些不適應了。這時候我們可以給父容器設定weightSum屬性,來制定父容器的比例總值。

舉個栗子:我們在LinearLayout中只放一個Button,且不管橫屏還是豎屏都居中顯示,並只佔螢幕寬的一半,如下圖所示:

圖123456

這時我們可以給LinearLayout設定weightSum = "2" 給子控制元件Button設定比例為layout_weight = "1"並設定居中。

這兩句程式碼的意思是,設定父容器的總比例為2,子控制元件的佔比為1,即佔用空間為1/2,即達到需要的效果。

2.使用 style 主題來定義一個通用的屬性,從而重複利用程式碼,減少程式碼量。使用 include 標籤載入底部選單欄佈局。include 標籤的目的是重複利用佈局,來減少程式碼。

3.減少佈局巢狀的層次。使用TextView可以設定四個方向圖片(android:drawableTop=""等)來直接替代LinerLayout下包裹一個ImageView 和T

extView TextView,減少了一層巢狀佈局。利用RelativeLayout相對佈局減少一層橋套,提高了載入佈局的效率。

5.通過減少背景顏色的設定來減少Overdraw的情況。

檢視佈局是否過度繪製的工具:

01.Hierarchy View:AS 工具欄中點選 Tools–>Android–>Android Device Monitor–>Hierarchy View。

02.顯示GPU過度繪製:在手機開啟 設定—->開發者選項—->顯示GPU過度繪製(繪製的層次從最優到最差:藍,綠,淡紅,紅)

03.Android Lint 工具:主要是用來檢查工程中程式碼的不合理,佈局不合理,資源重複,圖片重複,等,讓開發者進一步優化自己的應用。AS 使用者開啟此工:工具欄 Analyze—>Inspect Code。

6.懶載入佈局 ViewStub

通過 setVisibility(View.VISIBLE)或者viewStub.inflate()方來來讓其顯示,通過setVisibility(View.INVISIBLE)來隱藏 ViewStub。

佈局隱藏是是不載入的,只有當用戶需要的時候手動點選再讓其載入。這樣可以在初始下載的時候少載入一些不是很重要的佈局,節省資源和時間。

如有紕漏,歡迎留言指正,萬分感謝!