之前在网上看到有篇文章:Launcher之Dock细节篇http://www.linuxidc.com/Linux/2011-09/44160.htm 它实现了一个仿Mac的dock。感觉蛮有意思的,所以就照着仿制了一个。可以动态的添加快捷方式,默认包含AllApp按钮,图标居中显示。DockBar上的图标可以相互交换位置,并且将图标拖拽出去。拖拽释放后:文章后边附带的源码是基于Android2.2自带的launcher2稍作修改而成,使用eclipse调试。一、首先要在Launcher的setupViews函数里面初始化自己的layout(需增加3个地方)
- 1.
-
- dockbar=(DockBar)dragLayer.findViewById(R.id.dockbar);
-
- dockbar.setLauncher(this);
-
- dockbar.setDragController(dragController);
-
- 2.
-
- dragController.setDragScoller(workspace);
-
- dragController.setDragListener(deleteZone);
-
- dragController.setDockDragListener(dockbar); // hmg25 add for dock
-
-
-
- setDockDragListener为自定义函数,添加在DragController的startDrag中,具体见源码
-
- if(mDockListener!=null){
-
- mDockListener.onDragStart(source, dragInfo, dragAction);
-
- }
-
-
-
-
-
- 3.
-
- // The order here is bottom to top.
-
- dragController.addDropTarget(workspace);
-
- dragController.addDropTarget(dockbar); //hmg25 add for dock
-
- dragController.addDropTarget(deleteZone);