Launcher设计原理.docVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档