佈局優化其實他的本質就是減少Android繪製時的工作量,Android繪製時的工作量減少,程序的性能自然就會提高
佈局時的選用
- 佈局時的選用如果我們的佈局中既可以使用RelativeLayout也可以使用LinearLayout那麼我們就採用LinearLayout,因爲RelativeLayout的功能比較複雜他的佈局過程需要花費更多的Cpu時間同時RelativeLayout會讓子View調用兩次onMeasure,而LinearLayout再有Weight是纔會讓子View調用兩次onMeasure.
- 儘量減少佈局嵌套
- 刪除佈局中無用的控件和層級
- 如果進行多層佈局之間的嵌套建議使用RelativeLayout
代碼重用,有時候我們可以用indlude標籤將指定的佈局加載到我們當前佈局中
例如:
<include layout="@layout/item_bar" />
用TextView顯示文字和圖片減少佈局中的組件數量
有時候我們佈局中會碰見下面圖片中的功能
大家是怎麼做的呢是不是向下面這樣
<LinearLayout
android:id="@+id/ll_red"
style="@style/LlMine">
<ImageView
android:src="@drawable/hsbkdiys"
style="@style/Next"/>
<TextView style="@style/TxMine"
android:text="紅包抵用劵"/>
<ImageView
style="@style/Next.Next"/>
</LinearLayout>
這用做其實會有很多多餘的控件其實上面的功能只需要一個TextView就可以搞定
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:drawableLeft="@drawable/xmjnhsbk"
android:drawableRight="@drawable/next_new"
android:paddingRight="20dp"
android:drawablePadding="20dp"
android:text="政府"
android:textSize="16sp"
android:paddingLeft="20dp"
android:gravity="center_vertical"
/>
用
android:drawableLeft=”@drawable/xmjnhsbk”
android:drawableRight=”@drawable/next_new”
這兩行代碼引用兩邊的圖片
4.ViewStub的使用ViewStub它本身不參與任何佈局的繪製和佈局過程他的意義就在於按照需要加載所需的佈局文件
例如:網絡異常時的界面
他沒有必要整個界面初始加載時進行加載只有在我們網異常時纔會加載該界面使用ViewStub就可以做到需要時才加載該界面減少整個佈局的初始時間
今天的佈局性能優化就在這裏。