Launcher主要由下面这些view东东组成:
别看名字千奇百怪,都是view哦
private DragLayer mDragLayer;
mDragLayer = (DragLayer) findViewById(R.id.drag_layer);
private Workspace mWorkspace;
mWorkspace = (Workspace) dragLayer.findViewById(R.id.workspace);
private SlidingDrawer mDrawer;
mDrawer = (SlidingDrawer) dragLayer.findViewById(R.id.drawer);
private AllAppsGridView mAllAppsGrid;
mAllAppsGrid = (AllAppsGridView) drawer.getContent();
private HandleView mHandleView;
mHandleView = (HandleView) drawer.findViewById(R.id.all_apps);
DeleteZone deleteZone = (DeleteZone) dragLayer.findViewById(R.id.delete_zone);// 偷偷在setupview时建的,不是类成员。 给handleview set了一个handle
launcher运行时候能看到的。基本也就是这些元素组成的。
LayoutInflater mInflater;
把各种xml文件对应的layout 部署到调用他的 Context上,即Launcher上。
在onCreate时初始化。
private AppWidgetManager mAppWidgetManager;
appwidget 管理控制相应的 widget app.
private LauncherAppWidgetHost mAppWidgetHost;
继承了AppWidgetHost 用来和appwidget service交互。
private final BroadcastReceiver mApplicationsReceiver = new ApplicationsIntentReceiver();
private final BroadcastReceiver mCloseSystemDialogsReceiver = new CloseSystemDialogsIntentReceiver();
两个receiver,对相应的intent进行响应。源码里只看到package的三个action:ACTION_PACKAGE_ADDED,ACTION_PACKAGE_REMOVED,ACTION_PACKAGE_CHANGED,还有个ACTION_CLOSE_SYSTEM_DIALOGS
private final ContentObserver mObserver = new FavoritesChangeObserver();
private final ContentObserver mWidgetObserver = new AppWidgetResetObserver();
前面那个oversver监视LauncherSettings.Favorites.CONTENT_URI,后面那个监视(LauncherProvider.CONTENT_APPWIDGET_RESET_URI
private static final LauncherModel sModel = new LauncherModel();
LauncherModel用来保存launcher所有运行时的变量到内存中,并提供数据库相关借口方便参数操作。系统一般只有一个Launcherodel,保证正常显示。
protected void onActivityResult(int requestCode, int resultCode, Intent data)
是像ContextMenu这类返回Activityesul时对桌面图标拾起,移动和创建的比较主要的逻辑,功能包括
REQUEST_PICK_APPLICATION,
REQUEST_PICK_SHORTCUT,
REQUEST_CREATE_SHORTCUT,
REQUEST_PICK_LIVE_FOLDER,
REQUEST_CREATE_LIVE_FOLDER,
REQUEST_PICK_APPWIDGET
REQUEST_CREATE_APPWIDGET
REQUEST_PICK_APPWIDGET
REQUEST_CREATE_APPWIDGET
看名字基本能看出来是做啥的。
private SlidingDrawer mDrawer;
这个就是抽屉的成员了。
一个抽屉包括两部分(其实是SlidingDrawer包括两部分): handler(手可以拉的地方) Content(拉开之后你看见什么)
不写了。。。Launcher太大了
Launcher整个是个dragLayer,由两部分: workspace,slidingDrawer组成。
workspace就是大家喜闻乐见的桌面,默认4*4,16个格子的CellLayout
slidingDrawer就是大家喜闻乐见的抽屉以及垃圾桶,,反正nexus已经不用,估计会废弃
slidingDrawer作为一个抽屉,包括handler和content(allappsgridview)两部分,外加一个回收站deleteZone
喜欢研究的自己看看源码,比啥都强-v-,因为源码挺好懂的
分享到:
相关推荐
Android Launcher源码下载,PagedView,PagedViewIcon
Android Launcher 源码修改可编译.zip源码资源下载Android Launcher 源码修改可编译.zip源码资源下载
1.适用android 盒子,1920*1080(密度240),1280*720(密度160),1280*720(密度213) 2,eclipse 代码 3,主页功能介绍(第一排,左边语音调起,右边时间,第二排,常用国外视频app,第三排所有apps,第四排设置,...
仿小米电视桌面launcher源码Demo,改桌面采用 类似小米一样的metro风格的 设计,可以通过远程配置控制桌面显示 的内容,非常棒,成功用于多个机顶盒ott项目。无积分或者不想登陆点我头像发给你。
Android系统桌面Launcher3源码,可直接在Android Studio中编译。
android2.2 原生Launcher源码
安卓Android源码——Android Launcher 源码修改可编译.zip
Android桌面程序Launcher源码.
安卓Android源码——Launcher源码修改可编译.zip
launcher源码(ADWlauncher+android4.0原生launcher)
Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...
Android高级应用源码-Android Launcher 源码修改可编译.zip
android源码的Launcher详细解析,分析Launcher的运行机制
Andriod8.0 TV Launcher源码, 基于Android Studio的工程源码。 一种基础的 Android TV桌面导航Launcher 的Demo,仅用作交流!
Android Launcher 源码修改可编译,作为app开发参考用。
android launcher 源码分析,不错的源码资料,分享给大家
Android 7.1 Launcher源码
适用于初学者的AndroidTVLauncher demo ,简单易懂结构清晰
android2.3 launcher 源码
这是ADW Launcher的源码,可以直接在Eclipse中运行。