Android 4.0 Launcher2源码分析——主布局文件(转)

书到用时方恨少,事非经过不知难。这篇文章主要讲述Android 4.0 Launcher2源码分析——主布局文件(转)相关的知识,希望能为你提供帮助。
本文来自http://blog.csdn.net/chenshaoyang0011 
android系统的一大特色是它拥有的桌面通知系统,不同于ios的桌面管理,Android有一个桌面系统用于管理和展示APP以及桌面Widget等。
Android提供一个默认的桌面应用,当然我们也可以使用第三方的桌面应用。Android的Launcher的源码在   \packages\apps\Launcher2。
Launcher2的主布局文件包括res\layout-land\launcher.xml
  ,  res\layout-port\launcher.xml ,  res\layout-sw600dp\launcher.xml ,分别适配横屏,竖屏和7寸平板。内容大同小异,这里就以res\layout-port\launcher.xml的为例。
首先让我们看看launcher.xml中的结构:
 

  1. < com.android.launcher2.DragLayer   
  2.         xmlns:android="http://schemas.android.com/apk/res/android"   
  3.         xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"   
  4.         android:id="@+id/drag_layer"   
  5.         ...   
  6.         >    
  7.    
  8.         < !--  Keep  these  behind  the  workspace  so  that  they  are  not  visible  when   
  9.                   we  go  into  AllApps  -->    
  10.         < include   
  11.                 android:id="@+id/dock_divider"   
  12.         layout="@layout/workspace_divider"   
  13.                 ...   
  14.           />    
  15.    
  16.         < !--  分页指示器  -->    
  17.         < include   
  18.                 android:id="@+id/paged_view_indicator"   
  19.                 layout="@layout/scroll_indicator"   
  20.                 ...   
  21.           />    
  22.    
  23.         < !--  The  workspace  contains  5  screens  of  cells  -->    
  24.         < com.android.launcher2.Workspace   
  25.                 android:id="@+id/workspace"   
  26.                 ...   
  27.                 >    
  28.    
  29.                 < !--  五个分屏,默认显示cell3  -->    
  30.                 < include  android:id="@+id/cell1"  layout="@layout/workspace_screen"  />    
  31.                 < include  android:id="@+id/cell2"  layout="@layout/workspace_screen"  />    
  32.                 < include  android:id="@+id/cell3"  layout="@layout/workspace_screen"  />    
  33.                 < include  android:id="@+id/cell4"  layout="@layout/workspace_screen"  />    
  34.                 < include  android:id="@+id/cell5"  layout="@layout/workspace_screen"  />    
  35.         < /com.android.launcher2.Workspace>    
  36.    
  37.         < !--  搜索框/删除框  -->    
  38.         < include   
  39.                 android:id="@+id/qsb_bar"   
  40.                 layout="@layout/qsb_bar"  />    
  41.    
  42.         < !--  显示具体全部应用的界面,包括APPS、WIGHETS的tab标签,以及显示ALL  APP的页面和现实APP  WIGHETS的页面  -->    
  43.         < include  layout="@layout/apps_customize_pane"   
  44.                 android:id="@+id/apps_customize_pane"   
  45.                 ..   
  46.         />    
  47.    
  48.         < !--  WorkSpace最下面的五个快捷位置  -->    
  49.         < include  layout="@layout/hotseat"   
  50.                 android:id="@+id/hotseat"   
  51.                 ..   
  52.           />    
  53.    
  54.         < !--  刚启动的时候显示的指导页  -->    
  55.         < include  layout="@layout/workspace_cling"   
  56.                 android:id="@+id/workspace_cling"   
  57.                 ...   
  58.         />    
  59.    
  60.         < !--  是第一次进入全部应用之后显示的指导页  -->    
  61.         < include  layout="@layout/folder_cling"   
  62.                 android:id="@+id/folder_cling"   
  63.                 ...   
  64.         />    
  65. < /com.android.launcher2.DragLayer>    
接着我们来一一认识每一个View控件。
1、最外层的DragLayer,是一个继承自FramLayout的View控件,显示的就是整个桌面根容器。桌面的所有控件都是位于DragLayer中。
2、id/dock_divider,使用了布局workspace_divider,其实就是一个ImageView。是Workspace与Hotseat之间的分割线。
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片

3、id/paged_view_indicator,使用了布局scroll_indicator,显示效果是在id/dock_divider上显示一条淡蓝色的横线,来指示当分屏所处的位置
4、id/workspace ,工作空间拥有五个workspace_screen,即有五个分屏,每个分屏都可以放置shortcut和AppWidget,效果如下:
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片

5、id/cell1..cell5 ,分别代表五个分屏
6、id/qsb_bar 搜索框/删除框,根据需要进行切换
   
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片
     
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片

7、id/apps_customize_pane,效果如下
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片

8、id/hotseat 即主屏幕下方的五个快捷位置
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片

9、id/workspace_cling当第一次运行Launcher2时,会显示的用于指导的动画,以后不再显示
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片


10、id/folder_cling,第一次使用Folder时,展示给用户的指导画面。
Android 4.0 Launcher2源码分析——主布局文件(转)

文章图片


【Android 4.0 Launcher2源码分析——主布局文件(转)】这样,我们已经可以使每个UI界面及组件都对号入座,这会使接下来分析的时候更加清晰。



    推荐阅读