Android launcher 开发笔记(二) launcher中常用的类
2016-07-19 17:14
316 查看
LauncherModel:从名字我们可以看出他跟数据有关系的,保存了桌面运行时的状态信息,也提供了读写数据库的API,他有一个内部类LoaderTask,桌面启动从数据库中读取数据并把图标和小工具添加上去的时候用的就是他。
BubblTextView:图标都是基于他,不过奇怪的是,他是继承自TextView,我之前一直以为是一个线性布局,上面放图片,下面放文字。
DragController:DragLayer只是一个ViewGroup,具体的拖拽的处理都放到了DragController中。
LauncherAppState:单例模式,主要在启动的时候用,他初始化了一些对象,并且注册了广播监听器和ContentObserver。
DragView:在拖动图标的时候跟随手指移动的View就是他。
DragSource,DropTarget:跟拖拽相关的接口,DragSource表示图标从哪里被拖出来,DropTarget表示图标可以被拖到哪里去。
Folder:文件夹打开时候那个view。
FolderIcon: 文件夹图标。
LauncherProvider:数据库类,Launcher3使用了SQLite,数据库文件保存在/data/data/包名/databases/launcher.db 下,有兴趣的同学可以把这个东西拷贝出来,用SQLite的工具看看里面都是怎么保存的。
ItemInfo:运行时保存了桌面上每个项目的信息,包括图标在第几屏,第几行第几列,高度宽度等信息,每一个ItemInfo对象都对应着数据库中的一条记录。在Launcher3源码路径下,会有很多以Info结尾的类,这些类都是ItemInfo的子类,具体代表了桌面上的某个项目。比如说FolderIcon和FolderInfo是对应的,BubbleTextView和ShortcutInfo是对应的,AppWidgetHostView和LauncherAppWidgetInfo是对应的。有了对应关系,可以这样通过view获取ItemInfo对象:
这样这里的info其实就是ShortcutInfo对象了。
转自http://www.fookwood.com/archives/854
BubblTextView:图标都是基于他,不过奇怪的是,他是继承自TextView,我之前一直以为是一个线性布局,上面放图片,下面放文字。
DragController:DragLayer只是一个ViewGroup,具体的拖拽的处理都放到了DragController中。
LauncherAppState:单例模式,主要在启动的时候用,他初始化了一些对象,并且注册了广播监听器和ContentObserver。
DragView:在拖动图标的时候跟随手指移动的View就是他。
DragSource,DropTarget:跟拖拽相关的接口,DragSource表示图标从哪里被拖出来,DropTarget表示图标可以被拖到哪里去。
Folder:文件夹打开时候那个view。
FolderIcon: 文件夹图标。
LauncherProvider:数据库类,Launcher3使用了SQLite,数据库文件保存在/data/data/包名/databases/launcher.db 下,有兴趣的同学可以把这个东西拷贝出来,用SQLite的工具看看里面都是怎么保存的。
ItemInfo:运行时保存了桌面上每个项目的信息,包括图标在第几屏,第几行第几列,高度宽度等信息,每一个ItemInfo对象都对应着数据库中的一条记录。在Launcher3源码路径下,会有很多以Info结尾的类,这些类都是ItemInfo的子类,具体代表了桌面上的某个项目。比如说FolderIcon和FolderInfo是对应的,BubbleTextView和ShortcutInfo是对应的,AppWidgetHostView和LauncherAppWidgetInfo是对应的。有了对应关系,可以这样通过view获取ItemInfo对象:
ItemInfo info = (ItemInfo)bubbletextview.getTag();
这样这里的info其实就是ShortcutInfo对象了。
转自http://www.fookwood.com/archives/854
相关文章推荐
- 读取android真机里面的文件的方法
- Android Activity的四种LaunchMode!!!
- AndroidDeveloper Weekly No.1
- Android获取一个按钮的状态
- ubuntu 16.04 创建android可见的手机wifi
- 【android学习】通过正则表达式解决数据传输过程中的堆包问题
- android圆形头像的实现类CircleImageView.java
- android autocompletetextview(自动匹配控件)类比listview
- Android杂谈————软键盘、背景透明、粘贴板
- Android自定义控件之购物车数量加减器
- android的动画
- 分享下android 一个Listview下拉刷新的二次封装(第一次修订)
- android studio 英文翻译插件安装及配置
- android之视频播放系统VideoView和自定义VideoView控件的应用
- 通用的recyclerview adapter 适配
- Android串口操作,简化android-serialport-api的demo
- 动画 AnimationDrawable 帧动画
- 六款值得推荐的android(安卓)开源框架简介
- Android动画译文(下)
- 通过ContentResolver获取手机中的联系人信息