先说下我的思路:

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点击应用主题后:更换图标演示:

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

修修补补的事情了。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVmZWlmYW5kag==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

(9)launcher3 之 外部 更换主题Theme APP demo 实现原理以及demo的更多相关文章

  1. PhpStorm 8.x/9.x 快捷键设置/个性化设置,如何多项目共存?如何更换主题?

    1."自定义"常用快捷键(设置成跟Eclipse差不多) 按照路径:File -> Settings -> Appearance & Behavior -> ...

  2. 第十四章:样式(Style)和主题(Theme)

    简介 Android的样式(Style)和主题(Theme)文件就好比WEB开发中的CSS一样,可以实现UI界面的风格统一管理,这和Windows平台的XAML格式(Silverlight.WPF)类 ...

  3. github+hexo搭建自己的博客网站(二)更换主题yilia

    开始更换主题,hexo默认的主题是landscape,可以更换为其他的主题yilia主题 详细的可以查看hexo博客的演示:saucxs.github.io 可以查看在github上生成的静态文件:h ...

  4. WordPress更换主题空白问题

    刚才尝试着更换了一个主题,后来发现预览主页的时候是一片空白.查了很多资料,有说是index.php的权限问题,有说是插件问题,有说是UTL-8编码的问题,我都试过了,发现都不行,后来仔细研究了一下,发 ...

  5. 使用 css/less 动态更换主题色(换肤功能)

    前言 说起换肤功能,前端肯定不陌生,其实就是颜色值的更换,实现方式有很多,也各有优缺点 一.看需求是什么 一般来说换肤的需求分为两种: 1. 一种是几种可供选择的颜色/主题样式,进行选择切换,这种可供 ...

  6. 总结一下Android中主题(Theme)的正确玩法

    在AndroidManifest.xml文件中有<application android:theme="@style/AppTheme">,其中的@style/AppT ...

  7. Struts2的模板和主题theme及自定义theme的使用

    Struts2的模板和主题theme及自定义theme 标签: struts2 2016-03-29 11:22 190人阅读 评论(0) 收藏 举报  分类: javaweb(8)  Struts2 ...

  8. 【转载】总结一下Android中主题(Theme)的正确玩法

    http://www.cnblogs.com/zhouyou96/p/5323138.html 总结一下Android中主题(Theme)的正确玩法 在AndroidManifest.xml文件中有& ...

  9. Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme

    原文:Android菜鸟的成长笔记(6)--剖析源码学自定义主题Theme 还记得在Android菜鸟的成长笔记(3)中我们曾经遇到了一个问题吗?"这个界面和真真的QQ界面还有点不同的就是上 ...

随机推荐

  1. 【bzoj2729】[HNOI2012]排队 组合数学+高精度

    题目描述 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的) 输入 ...

  2. Linux 终端操作之「I/O Redirection」

    I/O 重定向是在终端运行程序时很常用的技巧,但是我对它所知甚少.今天我在 DigitalOcean 上发现了一篇很好的 tutorial.这篇随笔记录一下我的心得体会和发现的一个问题. I/O re ...

  3. 用户认证系统 django.contrib.auth模块

    一 导入auth模块 from django.contrib.auth.models import User from django.contrib import auth auth模块的操作针对的就 ...

  4. 爬虫【自动登陆github和抽屉】

    自动登陆github用户详情页 代码 #! /usr/bin/env python # -*- coding: utf- -*- # __author__ = "wuxiaoyu" ...

  5. select * from 为什么效率低?

    sql优化有很重要的一项叫做列裁剪(column pruning).如果不考虑索引,sql的执行算法大概分为sort-base和hash-base,不论是哪种,多出来的列都会带来很多无用的计算. “* ...

  6. 滑雪与时间胶囊(bzoj 2753)

    Description a180285非常喜欢滑雪.他来到一座雪山,这里分布着M条供滑行的轨道和N个轨道之间的交点(同时也是景点),而且每个景点都有一编号i(1<=i<=N)和一高度Hi. ...

  7. FZOJ 2102 Solve equation

                                                                                                        ...

  8. linux 时间模块 一

    作者:云天明链接:https://www.zhihu.com/question/50764115/answer/122613742来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  9. 首次远程安装 GlassFish 后以远程 Web 方式访问其后台管理系统出现错误的解决方法(修订)

    首次远程安装 GlassFish 服务后,如果以远程 Web 方式访问其后台管理系统,会提示 Secure Admin must be enabled to access the DAS remote ...

  10. 转载:linux编程,命令行参数输入getopt

    下面资料来自百度百科: getopt(分析命令行参数) 相关函数 表头文件 #include<unistd.h> 定义函数 int getopt(int argc,char * const ...