这段时间研究了安卓4.4的Launcher源码,决定把自己的收获分享一下,欢迎各位留言. 把4.4的Launcher源码导入到eclipse中时会报一些错误,这是因为涉及到一些隐藏的api和资源.需要以下3个jar包 1.ramework_intermediates/classes.jar                                 &n…

2021年5月2日 0条评论 18点热度 阅读全文

一、搜索框/删除框简介 搜索框在手机桌面上方,当拖动一个快捷方式图标时就会隐藏搜索框并且显示删除框.如下图所示 二、搜索框/删除框布局 屏幕上方的搜索和删除框是在一个布局里,名称为qsb_bar,位于res/layout-port/launcher.xml布局里,如果你的设备是横屏的,那么在res/layout-land/launcher.xml布局里. <!--圆形指示器 --> <include android:id="@+id/page_indicator" layout="@layout/…

2016年6月6日 0条评论 14点热度 阅读全文

一、Launcher加载布局的基本流程 Launcher界面的内容展现是由default_workspace.xml决定的,它决定了每个屏幕显示的内容和布局.位于res\xml目录下.它是在LauncherProvider里的loadDefaultFavoritesIfNecessary方法进行解析,然后存储到数据库中.LauncherProvider继承自ContentProvider.看下这个loadDefaultFavoritesIfNecessary方法. synchronized public void …

2016年6月4日 0条评论 11点热度 阅读全文

一、Launcher的启动 首先启动LauncherApplication,这里面只有两行代码,初始化了LauncherAppState,LauncherAppState主要是初始化一些对象,注册广播和内容观察者等.比如你安装程序和卸载程序,里面都会监听这个广播. 之后启动Launcher这个Activity,看它的oncreate方法. @Override protected void onCreate(Bundle savedInstanceState) { if (DEBUG_STRICT_MODE) { S…

2016年6月3日 0条评论 12点热度 阅读全文

一.WorkSpace是什么 前面已经介绍了一个WorkSpace包含了多个CellLayout,再回忆下之前画过的图 WorkSpace是一个ViewGroup,它的布局如下 <com.android.launcher3.Workspace android:id="@+id/workspace" android:layout_width="match_parent" android:layout_height="match_parent" launcher:defaultScreen="@integer/c…

2016年6月3日 0条评论 11点热度 阅读全文

一.CellLayout是什么 在前面的 Android4.4-Launcher源码分析系列之Launcher介绍分析了Launcher的布局,CellLayout继承自ViewGroup, 一个Workspace由多个CellLayout组成,每一个CellLayout负责里面图标(favorite)和widget的显示.说白了,我们滑动屏幕的每一页就是一个CellLayout. 二、CellLayout的布局 CellLayout的布局为workspace_screen.xml. <com.an…

2016年6月2日 0条评论 14点热度 阅读全文

一、DropTarget DropTarget是一个接口,它定义了一个可以接收被拖动对象的对象,意思是说实现了这个接口的对象是一个可以放置被拖动对象的容器. 实现了这个接口的有ButtonDropTarget、Folder、Workspace三个. 它内部定义了一个DragObject类,声明了一些与拖动有关的属性 class DragObject { public int x = -1; public int y = -1; /** 触摸点到cell右上角的x位置 */ public int xOffset = …

2016年6月1日 0条评论 12点热度 阅读全文

一、DragLayer布局 上一篇文章分析过Launcher的布局,它是最外层的布局 <!-- Full screen view projects under the status bar and contains the background --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com/apk/res-a…

2016年5月31日 0条评论 12点热度 阅读全文

一.Launcher是什么 Launcher是启动器的意思,最直观的就是手机上的桌面.其实它是个Activity. public class Launcher extends Activity implements View.OnClickListener, OnLongClickListener, LauncherModel.Callbacks, 它负责管理桌面,包括显示快捷方式,widget,拖动图标,卸载app等. 二.分析Launcher布局 对于分析陌生的代码,最直观的是先查看它的布局. 我们打…

2016年5月19日 0条评论 8点热度 阅读全文