(5)Launcher 细说ItemInfo
2014-10-07 09:16
211 查看
要理解ItemInfo,就要先理解桌面有哪几种东西,即有哪几种Item。
小工具:就是AppWidget,时钟小工具,天气小工具,等等。
快捷方式:快速启动应用的图标,一个应用可以有多个重复的快捷方式,workspace和hotseat上的都是快捷方式
文件夹:可以把多个快捷方式放到一块的,用来分类,减少屏幕空间占用。
这些东西都一些共同的,可以抽象出来的东西,有自己的宽度和高度,都有所在的位置和第几等等,而ItemInfo就是抽象出来的东西,打开ItemInfo.java,其中包含的就是这些特征,然而,最关键的是ItemInfo对象和数据库记录是一一对应的。其中有个id的成员,代表的就是数据库中ID。
对于不同的item,ItemInfo也有不同的子类,小工具对应的是LauncherAppWidgetInfo,他增加了小工具的信息(查android文档:AppWidgetProviderInfo);快捷方式对应的是ShortcutInfo,他增加了启动一个Activity所需的Intent信息;文件夹对应的是FolderInfo,他增加了文件夹是否打开的标签,文件夹内图标的信息等等。
ItemInfo的成员有几个值得说说:
container:表明图标是放在哪里的,是放在Workspace还是Hotseat,还是文件夹里面的。如果是放在Workspace上的,那么值是LauncherSettings.Favorites.CONTAINER_DESKTOP,如果是放在文件夹里面的那么container的值就是文件夹FolderInfo的id。
cellX,cellY:表明所在屏幕的哪个位置,cellY表明第几行,cellX表明第几列。如果是小工具占用多行多列的情况,就记录他左上角的位置。
spanX,spanY:宽度和高度,快捷方式和文件夹宽高都是1,小工具的宽高就要看具体情况了。
title:标题,显示应用的名字,文件夹的名字,小工具的话就不需要这个属性了。
itemType: 数据库里保存的表明这个ItemInfo具体是哪种类型的ItemInfo,启动的时候好生成具体的ItemInfo子类对象。
ItemInfo就这么多了,如果你自己看类的继承关系的话,就知道ItemInfo还有几个子类,比如AppInfo,PendingAddItemInfo,我暂时还没有搞清楚这些类的使用流程,等以后搞清楚了再加上来吧。
再说几个关于数据库的类,方便以后找代码:
LauncherProvider: 桌面信息的ContentProvider。
LauncherSettings:存了数据库相关的常量,字段名,字段常量等等。
DatabaseHelper: LaucherProvider的内部类,继承自SQLiteOpenHelper,数据库表的创建就是在它的onCreate方法里完成的。
小工具:就是AppWidget,时钟小工具,天气小工具,等等。
快捷方式:快速启动应用的图标,一个应用可以有多个重复的快捷方式,workspace和hotseat上的都是快捷方式
文件夹:可以把多个快捷方式放到一块的,用来分类,减少屏幕空间占用。
这些东西都一些共同的,可以抽象出来的东西,有自己的宽度和高度,都有所在的位置和第几等等,而ItemInfo就是抽象出来的东西,打开ItemInfo.java,其中包含的就是这些特征,然而,最关键的是ItemInfo对象和数据库记录是一一对应的。其中有个id的成员,代表的就是数据库中ID。
对于不同的item,ItemInfo也有不同的子类,小工具对应的是LauncherAppWidgetInfo,他增加了小工具的信息(查android文档:AppWidgetProviderInfo);快捷方式对应的是ShortcutInfo,他增加了启动一个Activity所需的Intent信息;文件夹对应的是FolderInfo,他增加了文件夹是否打开的标签,文件夹内图标的信息等等。
ItemInfo的成员有几个值得说说:
container:表明图标是放在哪里的,是放在Workspace还是Hotseat,还是文件夹里面的。如果是放在Workspace上的,那么值是LauncherSettings.Favorites.CONTAINER_DESKTOP,如果是放在文件夹里面的那么container的值就是文件夹FolderInfo的id。
cellX,cellY:表明所在屏幕的哪个位置,cellY表明第几行,cellX表明第几列。如果是小工具占用多行多列的情况,就记录他左上角的位置。
spanX,spanY:宽度和高度,快捷方式和文件夹宽高都是1,小工具的宽高就要看具体情况了。
title:标题,显示应用的名字,文件夹的名字,小工具的话就不需要这个属性了。
itemType: 数据库里保存的表明这个ItemInfo具体是哪种类型的ItemInfo,启动的时候好生成具体的ItemInfo子类对象。
ItemInfo就这么多了,如果你自己看类的继承关系的话,就知道ItemInfo还有几个子类,比如AppInfo,PendingAddItemInfo,我暂时还没有搞清楚这些类的使用流程,等以后搞清楚了再加上来吧。
再说几个关于数据库的类,方便以后找代码:
LauncherProvider: 桌面信息的ContentProvider。
LauncherSettings:存了数据库相关的常量,字段名,字段常量等等。
DatabaseHelper: LaucherProvider的内部类,继承自SQLiteOpenHelper,数据库表的创建就是在它的onCreate方法里完成的。
相关文章推荐
- 触发器的运用(ItemInfo表)
- PackageManager、PowerManager、AudioManager、PackageItemInfo、ActivityInfo、ServiceInfo、ApplicationInfo说明
- The method process(ItemDetailInfo, Task) of type ItemRuKuUtils must override a superclass method的解决方
- MENUITEMINFO结构的翻译(转)
- 高仿小米launcher(ZAKER)跨屏拖动item
- 原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定 and 高仿小米launcher(ZAKER)跨屏拖动item 02-29最新更新
- com.ibatis.sqlmap.client.SqlMapExceptionThere is no statement named XIU_ITEM_INFO.ibatorgenerated_in
- jQuery学习之旅 Item4 细说DOM操作
- TTLauncherItem中的字体及颜色如何进行修改?
- jQuery学习之旅 Item4 细说DOM操作
- Android Launcher 应用图标大小不一的情况或GirdView Item 不规则处理与解决
- 构造MENUITEMINFO 使用InsertMenuItem给菜单插入图片
- 【Android】RecyclerView$ItemAnimator$ItemHolderInfo.left
- GetMenuItemInfo & InsertMenuItem 枚举和追加菜单操作
- 原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定 and 高仿小米launcher(ZAKER)跨屏拖动item 02-29最新更新
- Localizing Property List Values:对在Info.plist文件要显示的文字进行国际化(APP的名字或者quick action(shortItem)的文字)
- MENUITEMINFO结构的翻译
- 根据PackageInfo查看该包中是否有launcher类型的activity
- 原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定 and 高仿小米launcher(ZAKER)跨屏拖动item 02-29最新更新
- 原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定 and 高仿小米launcher(ZAKER)跨屏拖动item 02-29最新更新