当前位置:
文档之家› Android_launcher源码全面分析
Android_launcher源码全面分析
Launcher默认是有5个分屏,不过这个可以配置。同样,每行每列有多少图标也是可以配置 的。这里按我修改的是3行5列的界面排布(对应上面的效果图)。 一般配置APP的快捷方式,使用上面的属性标签就可以。
<appwidget //插件
launcher:className="de.dnsproject.clock_widget_main.Clock1AppWidgetProvider" //该应用的类 launcher:packageName="de.dnsproject.clock_widget_main" launcher:screen="1" launcher:x="2" launcher:y="3" launcher:spanY="2" /> //第1屏,0-4屏共5屏 //图标X位置,左上角第一个为0,向左递增,0-4共5个 //图标Y位置,左上角第一个为0,向下递增,0-2共3个 //在x方向上所占格数 //在y方向上所占格数 //该应用的包名
========================Launcher 学习========================
一、Launcher 默认界面配置(default_workspace) ------------------------------------------- - 2 1、界面默认配置文件 --------------------------------------------------------------------------- - 2 2、LauncherProvider.java 的 loadFavorites 分析------------------------------------------- - 3 二、Icon 修改、界面布局调整、壁纸设置 ------------------------------------------------------ - 5 1、图标大小和标题大小 ------------------------------------------------------------------------ - 5 2、Launcher 图标加入默认背景 ------------------------------------------------------------- - 5 3、更换 Launcher 默认壁纸 -------------------------------------------------------------------- - 7 4、壁纸设置过程: ------------------------------------------------------------------------------ - 8 三、Launcher 启动和初始化 ------------------------------------------------------------------------- - 9 1、Launcher 进程启动过程 -------------------------------------------------------------------- - 9 2、Launcher 初始化――LauncherApplication --------------------------------------------- 10 3、Launcher.java 初始化 ------------------------------------------------------------------------ 12 1、Callbacks 接口 -------------------------------------------------------------------------------- 15 2、数据加载流程 --------------------------------------------------------------------------------- 16 3、startLoader()------------------------------------------------------------------------------------ 16 4、LoaderTask 的 run()方法 -------------------------------------------------------------------- 16 5、workspace 加载数据 ------------------------------------------------------------------------- 17 6、workspace 绑定数据 ------------------------------------------------------------------------- 20 7、ALL APP 数据加载绑定 -------------------------------------------------------------------- 22 五、HotSeat 分析 --------------------------------------------------------------------------------------- 24 1、Hotseat 配置文件 ----------------------------------------------------------------------------- 24 2、Hotseat 构造函数 ----------------------------------------------------------------------------- 26 3、Hotseat 加载数据 ----------------------------------------------------------------------------- 26 4、Hotseat 绑定数据 ----------------------------------------------------------------------------- 27 5、Hotseat 类 -------------------------------------------------------------------------------------- 28 6、总结---------------------------------------------------------------------------------------------- 29 六、页面滑动(PagedView)---------------------------------------------------------------------------- 29 七、AllApp 全部应用列表(AppsCustomizeTabHost)------------------------------------------- 37 1、AllApp 列表配置文件 ----------------------------------------------------------------------- 37 2、AppsCustomizeTabHost 分析 -------------------------------------------------------------- 39 3、Tab 变化时执行 onTabChanged----------------------------------------------------------- 40 八、AllApp 界面拖拽元素---------------------------------------------------------------------------- 41 1、触摸拦截 --------------------------------------------------------------------------------------- 41 2、handleTouchEvent 方法 --------------------------------------------------------------------- 42 4、拖曳按钮 --------------------------------------------------------------------------------------- 43 九、Launcher 启动 APP 流程 ------------------------------------------------------------------------ 44 1、WorkSpace 触摸 ------------------------------------------------------------------------------ 44 2、CellLayout 的 onInterceptTouchEvent()方法 ------------------------------------------- 45 3、WorkSpace 的 onTouch()事件 ------------------------------------------------------------- 46 4、BubbleTextView ------------------------------------------------------------------------------ 46 5、onClick()方法---------------------------------------------------------------------------------- 48 6、总结---------------------------------------------------------------------------------------------- 49 -