- 浏览: 39735 次
- 性别:
- 来自: 北京
文章分类
最新评论
(转)这份源码是基于2.1的launcher2
一、主要文件和类
1.Launcher.java:launcher中主要的activity。
2.DragLayer.java:launcher layout的rootview。DragLayer实际上也是一个抽象的界面,用来处理拖动和对事件进行初步处理然后按情况分发下去,角色是一个controller。它首先用onInterceptTouchEvent(MotionEvent)来拦截所有的touch事件,如果是长按item拖动的话不把事件传下去,直接交由onTouchEvent()处理,这样就可以实现item的移动了,如果不是拖动item的话就把事件传到目标view,交有目标view的事件处理函数做相应处理。如过有要对事件的特殊需求的话可以修改onInterceptTouchEvent(MotionEvent)来实现所需要的功能。
3. DragController.java:为Drag定义的一个接口。包含一个接口,两个方法和两个静态常量。接口为DragListener(包含onDragStart(),onDragEnd()两个函数),onDragStart()是在刚开始拖动的时候被调用,onDragEnd()是在拖动完成时被调用。在launcher中典型的应用是DeleteZone,在长按拖动item时调用onDragStart()显示,在拖动结束的时候onDragEnd()隐藏。两个函数包括startDrag()和setDragItemInfo().startDrag()用于在拖动是传递要拖动的item的信息以及拖动的方式,setDragItemInfo()用于传递item的参数信息(包括位置以及大小)。两个常量为DRAG_ACTION_MOVE,DRAG_ACTION_COPY来标识拖动的方式,DRAG_ACTION_MOVE为移动,表示在拖动的时候需要删除原来的item,DRAG_ACTION_COPY为复制型的拖动,表示保留被拖动的item。
4.LauncherModel.java:辅助的文件。里面有许多封装的对数据库的操作。包含几个线程,其中最主要的是ApplicationsLoader和DesktopItemsLoader。ApplicationsLoader在加载所有应用程序时使用,DesktopItemsLoader在加载workspace的时候使用。其他的函数就是对数据库的封装,比如在删除,替换,添加程序的时候做更新数据库和UI的工作。
5.Workspace.java:抽象的桌面。由N个celllaout组成,从cellLayout更高一级的层面上对事件的处理。
6.LauncherProvider.java:launcher的数据库,里面存储了桌面的item的信息。在创建数据库的时候会loadFavorites(db)方法,loadFavorites()会解析xml目录下的default_workspace.xml文件,把其中的内容读出来写到数据库中,这样就做到了桌面的预制。
7.CellLayout.java:组成workspace的view,继承自viewgroup,既是一个dragSource,又是一个dropTarget,可以将它里面的item拖出去,也可以容纳拖动过来的item。在workspace_screen里面定了一些它的view参数。
8.ItemInfo.java:对item的抽象,所有类型item的父类,item包含的属性有id(标识item的id),cellX(在横向位置上的位置,从0开始),cellY(在纵向位置上的位置,从0开始) ,spanX(在横向位置上所占的单位格),spanY(在纵向位置上所占的单位格),screen(在workspace的第几屏,从0开始),itemType(item的类型,有widget,search,application等),container(item所在的)。
9.UserFolder.java: 用户创建的文件夹。可以将item拖进文件夹,单击时打开文件夹,长按文件夹上面标题处可以重命名文件夹。
10.LiveFolder.java:系统自带的文件夹。从系统中创建出的如联系人的文件夹等。
11.DeleteZone:删除框。在平时是出于隐藏状态,在将item长按拖动的时候会显示出来,如果将item拖动到删除框位置时会删除item。DeleteZone实现了DropTarget和DragListener两个接口。
12.LauncherSettings.java:字符串的定义。数据库项的字符串定义,另外在这里定义了container的类型,还有itemType的定义,除此还有一些特殊的widget(如search,clock的定义等)的类型定义。
发表评论
-
设置内存卡资源图片
2013-03-12 10:11 480String imageDir = Environment. ... -
android字体过长渐变效果
2013-01-30 15:59 665使用 android:singleLine="t ... -
自定义之checkbox
2013-01-08 09:16 618android中自定义checkbox大小和图片 (转) ... -
Android中Activity,View,Window之间的关系(转)
2012-12-03 09:11 11301.首先来看Activity中的attach()方法,在调用o ... -
Dialog的dismiss和cancel 区别 (转)
2012-12-03 09:13 1847Dialog的dismiss和cancel AlertDial ... -
android应用程序适配在不同的手机上(转)
2012-12-03 09:15 490如何将一个应用程序适 ... -
android 堆栈 清理 (转)
2012-12-03 09:16 665启动任务 当一个activity ... -
Android权限共享UID(转)
2012-12-03 09:16 548共享UID 安装在设备中 ... -
ViewPager+TabHost 实现选项卡页面间滑动(转)
2012-12-04 09:19 919转自http://flycatdeng.iteye.com/b ... -
android扫描商品条形码
2012-12-04 09:19 997(转自http://marshal.easymorse.com ... -
基于Android平台的NFC技术的应用实现 (转)
2012-12-04 09:20 1400转自http://1679554191.iteye.com/b ... -
Android API包名及包的功能的中文介绍
2012-11-30 09:38 977android 包含应用平台和在定义应用程序所用到and ... -
Android 自动解锁 KeyguardManager(键盘管理器)(转)
2012-11-30 09:39 934写一个Activity启动该服务即可,用一个线程开启服务, ... -
Android之Service与IntentService的比较 .
2012-11-30 09:41 678转自http://blog.csdn.net/zhf19890 ... -
AlarmManager的使用
2012-11-30 09:42 671AlarmManager的作用文档中的解释是:在特定的时刻为 ... -
ActivityGroup之生命周期
2012-12-04 09:20 783Activity的生命周期已经 ... -
ActivityGroup之切换activity
2012-12-04 09:20 662前言 在一个主界面中做Activity切换一般都会用T ... -
Android SurviceView的触控和轨迹球事件 .
2012-12-05 14:10 1058SurfaceView 的触控和轨迹球事件 1,改开始什 ... -
home键屏蔽
2012-12-05 14:11 6191. 在activity中加上这段代码(重写onAttache ... -
彻底删除某个APK的方法
2012-12-05 14:11 10681. 连接ADB, 执行adb remount 2. 执行a ...
相关推荐
android launcher 源码分析,不错的源码资料,分享给大家
android源码的Launcher详细解析,分析Launcher的运行机制
Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...
Android_launcher的源码详细分析.pdf
一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5 2 Launcher 图标加入默认背景 ...
Android_Launcher的源码详细分析
桌面快捷图标的拖拽. Workspace切换AllApps流程 Workspace滑动. Launcher内容加载详细过程.
安卓Android源码——安卓Android Launcher 桌面分页滑动代码.rar
android 4.0 launcher分析
应用锁说明分析文档,launcher3源码,修改patch
Launcher2 应用源码 . Launcher3 应用源码 . frameworks/base/core 源码 . frameworks/base/services 源码 . ActivityRecord.java , ActivityThread.java , Instrumentation.java , Launcher.java
Launcher3-mx更新:20200909基于Android P Launcher-master源码主要分支启动器3-6.0 启动器3-7.0 Launcher3-8.0(android-8.0.0_r24) 启动器3-9.0 Launcher3-10.0(android-10.0.0_r46) 掌握教程注:本教程是基于...
android 4.0 源码,方便分析学习安卓,分析源码,
更改官方的Launcher3可以可以在Android Studio编译 ,从5892520提交开始 最小sdk版本为16 Android 5.0版本及以上可能会出现因为相同权限声明而不能安装的问题 如果你想要可以在Eclipse编译的版本,可以看这个标签:...
对android 主界面的详细描述,和源码分析!
仿Launcher的GridView拖动是一个长按GridView的item,然后将其拖拽其他item上面,使得GridView的item发生交换,比较典型的就是...本例子来自于CSND xiaanming的博客,详细的源码分析已经帮大家离线成pdf文档了。
Adroid UI 界面绘制原理分析.rar AnderWeb-android_packages_apps_Launcher-4458ee4.zip andorid 源码北京公交线路查询(离线).zip android Gallery实现异步加载网络图片 并只加载当前停止页面图.zip Android ...
本项目是一个高仿安卓百度桌面原型小工具项目源码,启动应用后会有一个转盘效果,默认显示最近使用的应用图标,按住转盘转动可以查看最近使用和最近安装的程序,点击应用图标就可以直接...应用分析 应用扫描 获取包信息
zygote启动流程源码分析, 文件包含zygote systemService activityManager启动homeLauncher. 因为本地文字较长 不方便写blog发布 所以上传一下文档
1.5 Android应用结构分析 24 1.5.1 创建一个Android应用 24 1.5.2 自动生成的R.java 26 1.5.3 res目录说明 27 1.5.4 Android应用的清单文件: AndroidManifest.xml 28 1.5.5 应用程序权限说明 29 ...