您的位置:首页 > 移动开发 > Android开发

如何修改Android系统内置的桌面图标

2011-01-05 19:55 981 查看
了解老码农个人隐私,请看这里:http://www.koulianbing.com/?page_id=12

/packages/apps/Launcher/res/xml/default_workspace.xml中记录了系统初始化或者恢复出厂设置时桌面上图标的排列。Launcher程序第一次运行完毕以后,会在/data/data/com.android.launcher/databases/launcher.db中创建记录,里面有所有当前的桌面图标。以后每次启动只会从这里读取桌面图标。



下面简单分析一下default_workspace.xml:

default_workspace.xml中,支持的标签有:

favorite:应用程序快捷方式。

shortcut:链接,如网址,本地磁盘路径等。

search:搜索框。

clock:桌面上的钟表Widget

支持的属性有:

launcher:title,图标下面的文字,目前只支持引用,不能直接书写字符串。

launcher:icon,图标引用。

launcher:uri,链接地址。

launcher:packageName,应用程序的包名。

launcher:className,应用程序的启动类名。

launcher:screen,图标所在的屏幕编号。

launcher:x,图标在横向排列上的序号。

launcher:y,图标在纵向排列上的序号。



LauncherProvider.java里面的loadFavorites方法负责解析。



应用程序的写法,default_workspace.xml中有很多,对链接的写法却没有,我分析了一下它的解析程序,反向做出了链接快捷方式的写法,已经验证成功,希望可以帮到大家。

<shortcut

launcher:title="@string/aaa"

launcher:icon="@drawable/aaa"

launcher:uri="http://www.aaa.com"

launcher:screen="1"

launcher:x="0"

launcher:y="3" />

链接的图标内容和文字内容是从default_workspace.xml中获取到的。

应用程序的图标内容和图标下面的文字内容都是从PackageManager中获取到的。

如果Launcher启动时,应用程序的包名和类名因为某种原因没有在PackageManager中找到,桌面就不会显示它的图标。如果类名和包名找到了,但是图标没有找到,会显示Android默认的小机器人图标。

所以,要在default_workspace.xml中加入锭接时,只要写上title,icon,uri,screen,x,y这几个属性就可以了。

而要加入应用程序时,只要写上packageName,className,screen,x,y这几个属性就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: