標籤:android 布局 效能最佳化
本質是通過複用控制項達到效能最佳化。
1、通過<Include/>
被複用控制項:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="#ccc" > <TextView android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="使用include複用控制項" android:textSize="15sp" android:textColor="@android:color/holo_red_light" /> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_marginTop="48dp" android:layout_toRightOf="@+id/textView1" /> <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/quickContactBadge1" android:layout_below="@+id/quickContactBadge1" android:layout_marginRight="34dp" android:layout_marginTop="37dp" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/progressBar1" android:layout_below="@+id/progressBar1" android:layout_marginTop="26dp" android:text="Button" /> <include layout="@layout/bottom" android:id="@+id/myresue" android:layout_alignParentBottom="true" /></LinearLayout>
複用效果:
2‘通過Merge
解決布局嵌套降低效能的問題。把一個布局中處在同意層次的控制項抽取出來,在include,提高效能。
<?xml version="1.0" encoding="utf-8"?><merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button1" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button2" /></merge>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#f00" > <TextView android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="使用Merge複用控制項" android:textSize="15sp" android:textColor="@android:color/holo_red_light" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#0f0" > <TextView android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="使用Merge複用控制項" android:textSize="15sp" android:textColor="@android:color/holo_red_light" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#00f" > <TextView android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="使用Merge複用控制項" android:textSize="15sp" android:textColor="@android:color/holo_red_light" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <include layout="@layout/mybutton"/> </LinearLayout> </LinearLayout>
效果:
android布局效能最佳化