提升我们的UI Perfermance



提升UI Perfermance

现在大家越来越注重性能问题,其实没必要那么在乎,但是既然大家在乎了,这里通过Cyril Mottier :master_android_drawables ppt中的一个例子来说明如果利用Drawable来提升我们的UI的性能。

大家看这样一个效果图:


布局文件:

[html]   view plain  copy
 
  1. xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:background="@color/app_background"  
  6.     android:padding="8dp" >  
  7.   
  8.     <ImageView  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:layout_gravity="center"  
  12.         android:layout_marginBottom="24dp"  
  13.         android:src="@drawable/logo" />  
  14.   
  15.     <LinearLayout  
  16.         android:layout_width="match_parent"  
  17.         android:layout_height="48dp"  
  18.         android:layout_gravity="bottom"  
  19.         android:orientation="horizontal" >  
  20.   
  21.         <Button  
  22.             android:layout_width="0dp"  
  23.             android:layout_height="fill_parent"  
  24.             android:layout_weight="1"  
  25.             android:text="@string/sign_up" />  
  26.   
  27.         <Button  
  28.             android:layout_width="0dp"  
  29.             android:layout_height="fill_parent"  
  30.             android:layout_weight="1"  
  31.             android:text="@string/sign_in" />  
  32.     LinearLayout>  
  33.   
  34. FrameLayout>  

可以看到最外层是FrameLayout仅仅是为了设置背景图和padding,这样的布局相信很多人也写过。

再看看这个布局作为APP启动时,用户的直观效果:


用户首先看到一个白板,然后显示出我们的页面。接下来,我们将利用Drawable改善我们的UI性能以及用户体验。

1、首先,我们去除我们最外层的FrameLayout,然后自定义一个drawable的xml,叫做login.xml

[html]   view plain  copy
 
  1. xml version="1.0" encoding="utf-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.     <item>  
  4.   
  5.         <shape android:shape="rectangle" >  
  6.             <solid android:color="@color/app_background" />  
  7.         shape>  
  8.     item>  
  9.   
  10.     <item android:bottom="48dp">  
  11.         <bitmap  
  12.             android:gravity="center"  
  13.             android:src="@drawable/logo" />  
  14.     item>  
  15. layer-list>  

ok,这个drawable是设置了我们的背景和logo;

2、将其作为我们当前Activity的windowBackground

[html]   view plain  copy
 
  1. xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <style  
  4.         name="Theme.Default.NoActionBar"  
  5.         parent="@android:style/Theme.Holo.Light.NoActionBar" >  
  6.         <item name="android:windowBackground">@drawable/loginitem>  
  7.     style>  
  8. resources>  

3、设置到Activity上:

[html]   view plain  copy
 
  1. <activity  
  2. android:name="LoginActivity"  
  3. android:theme="@style/Theme.Default.NoActionBar">  

Ok,这样不仅最小化了我们的layout,现在我们的layout里面只有一个LinearLayout和两个按钮;并且提升了用户体验,现在用户的直观效果时:


是不是体验好很多,个人很喜欢这个例子~~

你可能感兴趣的:(提升我们的UI Perfermance)