着手开发lau cher 我个人觉得首先要从u i 框架入手,了解清楚了u i 框架对lau cher 就有了一个大致的了解,知道关键的几个类在哪里,对后面进一步深入地研究作出铺垫。废话不多说了,直接进入主题: 1.先看图 这是我正在研究的一个800*480的lau ncher 的u i 框架图,对应的桌面显示效果如下: 下面一行应用是我修改桌面后的结果,在前面我的ui 框架图中没有。 闲话不多说,下面就一一做出讲解 1.DragLayer--DragLayer 继承 FrameLayout,并在此基础上组合了 DragController 实现拖放功能,DragLayer 主要监听下面两个用户事件 onInterceptTouchEvent onTouchEvent 交给 DragController 进行处理,DragController 根据是否在拖放中等信息控制控件拖放过程处理。 DragLayer 是Launcher 这个 activity的顶层 view,Launcher2这个应用只有一个 activity那就是Laucher.java 2.DeleteZone--打开 launcher.xml,DeleteZone 默认是不显示的android:visibility="invisible" 但是我们每次开始拖放图标的时候 DeleteZone 就显示了,它是怎么实现的呢?DeleteZone实现了 DragController.DragListener 接口,DragListener 提供两个接口方法, onDragStart:隐藏把手,显示 DeleteZone onDragEnd:显示把手,隐藏 DeleteZone 分别在开始DragController 开始拖放和结束拖放的时候被调用. 另外DeleteZone 实现了DropTarget 接口,一旦鼠标把图标拖放到DeleteZone,就会调用DeleteZone 实现的onDrop 方法对应用图标进行删除处理。 3.ClippedImageView--屏幕左右移动按钮,正常图标很小,你只能看到小点,我设置 view背景不透明为绿色如前面我的截图 ClippedImageView 要注意三点, --1.桌面左右移动时Drawable 的变换,变换图标列表可查看 home_arrows_right.xml ,ClippedImageView 通过把drawable 传递给 worksapce,当桌面切换时通过调用Drawable.setLevel 函数实现不同图标显示。 --2.点击 ClippedImageView 实现左右桌面切换,查看 ClippedImageView 的布局文件 android:onClick="previousScreen",该属性定义了一个ClippedImageView onClick 事件响应函数,函数在布局文件对应的Activity 中定义 也就是在Launcher.java 中定义 /** * @Description:用户点击前一个桌面按钮 * @param v * @Others: */ @SuppressWarnings({"UnusedDeclaration"}) public void previousScr...