zoukankan      html  css  js  c++  java
  • (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点击应用主题后:更换图标演示:

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

    修修补补的事情了。





  • 相关阅读:
    201521123105 第8周Java学习总结
    201521123105 第七周Java学习总结
    201521123105 第六周Java学习总结
    201521123105 第四周Java学习总结
    201521123105 第三周Java学习总结
    201521123105《jave程序》第二周学习总结
    201521123105 《Java程序设计》第1周学习总结
    网络15软工个人作业5——软件工程总结
    个人作业4——alpha阶段个人总结
    软件工程网络15个人作业3——案例分析
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6848911.html
Copyright © 2011-2022 走看看