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


    先说下我的思路:

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

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

    因此,我们仅仅须要把 从数据库获取ICON 代码提前到  从APP资源包提取就可以。


    再来我们外部APP仅仅需对Launcher.db的 ICON字段进行 加入图标。就可以。

    再通知桌面去更新图标。就可以完毕整个桌面的 图标自己主动更换的效果。


    这样做的长处:

    代码改动量少,主题的APP无须跟Launcher3这个桌面APP有不论什么关联。相当于外部应用。

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


    详细思路比較简单清晰。而且实现了。

    有须要的能够留言,我能够给demo哈。



    读取button:

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


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


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




    主题来源:MIUI主题资源包解压而来:

    资源结构文件夹例如以下

    手机SD卡根文件夹:_theme------------------以下包括各个ZIP压缩格式的主题包。

    当我们启动主题APP的时候,会自己主动检測_theme该文件夹下ZIP文件,假设有存在就进行ZIP解压,并删除原来的ZIP文件。在这里我们进行了资源的解压。

    解压文件夹例如以下:

    icon:放图标资源:文件夹结构为icon_res_drawble-xhdmi

    wallpaper:放的是壁纸2张。一张为锁屏,一张为默认主界面壁纸

    preview:放的主题的截图。便于主题市场,进行获取资源显示给用户看。


    (以上主题包资源均来自MIUI主题的文件夹结构。)





    demo点击应用主题后:更换图标演示:

    因为仅仅是做測试,全部图标也仅仅是随便替换几个而已。功能实现了。后面的事情就好了。

    修修补补的事情了。





  • 相关阅读:
    git 镜像地址
    IntelliJ IDEA 2019 控制台中文乱码问题
    LINUX配置本地YUM源
    动态添加js的代码
    Java 多线程
    Java I/O系统
    Java 中的容器 Collection 和 Map
    Java 数组
    javaweb的四大作用域
    三层 转自http://git.oschina.net/tzhsweet/superui
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6848911.html
Copyright © 2020-2023  润新知