Android之Launcher的小试心得

    技术2024-10-18  4

    http://news.wangmeng.cn/detailNews/2601

     

    Launcher是Android系统的"桌面",在android2.1之前采用的是launcher,android2.2之后采用的launcher2,他们之间最大的区别是launcher2有3D效果,不过launcher2整个系统的代码的改动还是比较大的。 首先来介绍下launcher目录下的几个文件吧,我做简单说明: AddAdapter:添加桌面元素的适配器。 AllAppsGridView:Icon列表的的主界面,继承gridView。 DeleteZone:luancher的删除区域,继承ImageView。 DragController:拖动控制接口。 DragLayer:整个launcher的父节点,继承FrameLayout,实现接口DrayController。 DragSource:拖动源接口,定义了void onDropCompleted(View target, boolean success)。 DropTarget:拖动目标,定义很多拖动过程需要的方法:onDrop,onDragEnter,onDragOver,onDragExit,acceptDrop。 HandleView:launcher抽屉的开关,不过在android2.2已经没用抽屉了。 Launcher:整个launcher的程序的入口,代码量最大的一个文件。 Workspace:整个界面layout,几个窗口就是他下面的子节点。 我需要改动的就是模仿Mac系统,在桌面的底部加一个icon的列表功能,而且要求是把icon拖入拖出,首先上一张已经做出来的效果图:  我首先列出我完成的几个主要源文件: DockProvider:持久化dock Item的元素。 DockSettings:dock一些元素和uri信息。 DockView:显示icon的布局,继承LinearLayout实现DropTarget,DragSource, DragController.DragListener,OnClickListener, View.OnLongClickListener接口。 我在这里主要说下,实现原理,DockView是主要文件,它继承LinearLayout是为了它里面的元素水平摆放,直接用addView继承实现,继承系统的那些接口都是为了,接收到icon拖动的状态和信息。 首先要在Launcher的setupViews函数里面初始化自己的layout,代码如下: 

     

    最新回复(0)