Android-Launcher3
GarmentLee
code forever!
展开
-
Launcher3的workspace滑动分析
Workspace是PagedView的子类,而实际上滑动功能的实现是在PagedView中实现的。在Launcher中,Workspace中有五个CellLayout,分别代表五个分屏。 当左右拖动CellLayout时,就能实现滑动的效果。但实际上CellLayout中还有其他的子View,PagedView是如何避免了来自子View的干扰的呢?这里就需要讨论另一个问题,Androi原创 2015-12-30 21:36:12 · 3114 阅读 · 0 评论 -
Launcher3 开机后应用数据的加载流程分析
以下是Launcher3从开机后应用图标的一个加载流程的大致的分析:系统开机开启Launcher3后,执行Launcher3的onCreate()函数,进行应用数据的加载(主要显示的是核心代码):位置:Launcher.javaif (!mRestoring) { if (DISABLE_SYNCHRONOUS_BINDING_CURRENT_PAGE原创 2015-12-30 21:25:55 · 2517 阅读 · 0 评论 -
修改Launcher3应用Icon的样式
Launcher3中IconCache很明显是用于应用Icon缓存。在Launcher3的Java文件IconCacher.java:/** * Fill in "application" with the icon and label for "info." */ public void getTitleAndIcon(AppInfo applica原创 2015-12-30 21:18:50 · 4383 阅读 · 0 评论 -
Launcher3 应用图标的加载流程
下面从bindWorkspaceItems(oldCallbacks, currentWorkspaceItems, currentAppWidgets, currentFolders, null);开始具体分析应用图标的加载过程: LauncherModel.java:private void bindWorkspaceItems(final Callbacks oldCallb原创 2015-11-16 22:58:57 · 5685 阅读 · 4 评论 -
修改Launcher3中的workspace中的应用图标的大小
以下函数是把从数据库中加载的应用的信息绑定到workspace中。 public void bindItems(final ArrayList shortcuts, final int start, final int end, final boolean forceAnimateIcons) {原创 2015-11-16 22:52:43 · 5913 阅读 · 0 评论 -
修改Launcher3的workspace的应用图标的行列数:
先查看CellLayout的构造函数: public CellLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mDragEnforcer = new DropTarget.DragEnforcer(context);原创 2015-11-16 22:49:24 · 4530 阅读 · 0 评论