(9)launcher3 之 外部 更换主题Theme APP demo 实现原理以及demo

本文介绍如何在launcher3中实现外部更换主题,主要思路是提前从APP资源包提取图标,然后通过修改Launcher.db的ICON字段并通知桌面更新。通过内容提供者读取与更新数据库,实现图标自动更换。主题资源来源于MIUI主题包,解压后的资源包括图标、壁纸和预览截图。提供的Demo展示了部分图标替换的实现。
摘要由CSDN通过智能技术生成

先说下我的思路:

luancher3里面更换图标的逻辑如下:

先从APP资源包里查询--数据库查询--其他地方查询ICON

因此,我们只需要把 从数据库获取ICON 代码提前到  从APP资源包提取即可。


再来我们外部APP只需对Launcher.db的 ICON字段进行 添加图标,即可。再通知桌面去更新图标,即可完成整个桌面的 图标自动更换的效果。


这样做的优点:

代码修改量少,主题的APP无须跟Launcher3这个桌面APP有任何关联。相当于外部应用。

(前面第8我已经稍微简单介绍了下launcher3的内容提供者,需要写入2个权限)


具体思路比较简单清晰。并且实现了。

有需要的可以留言,我可以给demo哈。



读取按钮:

通过内容提供者对Launcher.db数据库进行读取信息并解析成List<shotCupInfo>对象,方便后面进行遍历更新图标到数据库。


更新按钮:点击后,将根据前面获取到的APP的ID进行指定更新Launcher.db的 ICON数据库。在这里我们会将SD卡里面ICON转为字节数组,进行保存到数据库。


应用主题:通知桌面去刷新。(这一步其实不用做的,因为当你进行第二步,更新操作的时候,访问数据库时候,桌面的数据库注册了观察者监听数据库发生改变,则进行workspace图标的更新。)



评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重播

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值