- 4
- 0
- 约4.88千字
- 约 4页
- 2017-07-09 发布于河南
- 举报
Launcher设计原理
Home Screen的代码位于packages/apps/Launcher目录。Launcher工程中的主要类如下:
AddAdapter:添加桌面元素的适配器;
AllAppsGridView:应用程序图标列表的主界面,继承GridView;
ApplicationInfo:保存有应用程序的信息;
ApplicationsAdapter:AllAppsGridView对应的Adapter;
DeleteZone:Launcher的删除区域,继承ImageView;
DragController:拖动控制接口;
DragLayer:整个launcher的父节点,继承FrameLayout,实现接口DrayController;
DragScroller
DragSource拖动源接口,定义了void onDropCompleted(View target, Boolean success);
DropTarget:拖动目标,定义很多拖动过程需要的方法;
HandleView:launcher抽屉的开关;
ItemInfo:记录ITEM_TYPE_APPLICATION, ITEM_TYPE_USER_FOLDER, ITEM_TYPE_LIVE_FOLDER, ITEM_TYPE_WIDGET_SEARCH这些类型的Item
Launcher:整个launcher的程序的入口;
LauncherModel:主要负责维护Launcher的状态和提供一些更新Launcher数据库状态的API
LauncherProvider:存储桌面上可以放置的几个对象,包括shortcut, search和clock等
WallpaperChooser:设置墙纸
Workspace:控制桌面显示区域的layout,几个窗口就是它下面的子节点;
从文件launcher.xml,workspace_screen.xml可获知Home Screen的UI结构如下图所示:
整个homescreen是一个包含三个child view的FrameLayout(com.android.launcher.DragLayer)。
第一个child就是桌面com.android.launcher.Workspace,这个桌面又包含两个child。每个child就对应一个桌面。这就是在Android上看到的两个桌面。每个桌面上放置下列对象:应用快捷方式、appwidget和folder。
第二个child是一个SlidingDrawer控件,这个控件由两个子控件组成。一个是com.android.launcher.HandleView,就是android桌面下方的把手,当点击这个把手时,另一个子控件com.android.launcher.AllAppsGridView就会弹出,这个子控件列出系统中当前安装的所有类型为category.launcher的Activity。
第三个child是com.android.launcher.DeleteZone。当用户在桌面上长按一个widget时,把手位置就会出现一个垃圾桶形状的控件,就是这个DeleteZone控件。
在虚拟桌面上可以摆放四种类型的对象:
ITEM_SHORTCUT,应用快捷方式;
ITEM_APPWIDGET,app widget;
ITEM_LIVE_FOLDER,文件夹;
ITEM_WALLPAPER,墙纸。
类AddAdapter(AddAdapter.java)列出了这四个类型对象。当用户在桌面空白处长按时,下列函数序列被执行:
Launcher::onLongClick-Launcher::showAddDialog-Launcher::showDialog(DIALOG_CREATE_SHORTCUT)-Launcher::onCreateDialog-Launcher::CreateShortcut
createDialog这个函数创建一个弹出式对话框,询问用户是要添加什么(快捷方式、appwidget、文件夹或墙纸),其内容就来自AddAdapter。
类Favorites(LauncherSettings.java)和类LauncherProvider定义了一个content provider,用来存储桌面上可以放置的几个对象,包括shortcut, search和clock等。
类DesktopItemsLoader负责将桌面上所有的对象从content provider中提取。?
线程private ApplicationsLoader mApplicationsLoader负责从包管理器中获取系统中安装的应用列表。(之后显示在AllAppsGridView上)。Applica
您可能关注的文档
最近下载
- 应用文写作求职信.pptx VIP
- 注册安全工程师考试《安全生产专业实务(其他安全)》题库(案例分析题)10211.pdf VIP
- 安徽单招考试2025、2025分类考试真题语文数学英语试题(含答案).pdf VIP
- 41834马工程西方文学理论全套PPT课件.pptx
- 粉尘涉爆安全教育课件.ppt VIP
- 协同治理机制经典文献推荐.docx VIP
- 1.国家电力投资集团有限公司光伏项目工程建设管理标准化工作手册.docx VIP
- CECS246-2008 给水排水工程顶管技术规程.pdf VIP
- 人教版(2024)七年级下册英语 Unit 6 Rain or Shine 教案(单元整体教学设计).docx
- 2025年苏州农业职业技术学院单招笔试英语试题库含答案解析.docx VIP
原创力文档

文档评论(0)