(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点击应用主题后:更换图标演示:
因为仅仅是做測试,全部图标也仅仅是随便替换几个而已。功能实现了。后面的事情就好了。
修修补补的事情了。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVmZWlmYW5kag==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
(9)launcher3 之 外部 更换主题Theme APP demo 实现原理以及demo的更多相关文章
- PhpStorm 8.x/9.x 快捷键设置/个性化设置,如何多项目共存?如何更换主题?
1."自定义"常用快捷键(设置成跟Eclipse差不多) 按照路径:File -> Settings -> Appearance & Behavior -> ...
- 第十四章:样式(Style)和主题(Theme)
简介 Android的样式(Style)和主题(Theme)文件就好比WEB开发中的CSS一样,可以实现UI界面的风格统一管理,这和Windows平台的XAML格式(Silverlight.WPF)类 ...
- github+hexo搭建自己的博客网站(二)更换主题yilia
开始更换主题,hexo默认的主题是landscape,可以更换为其他的主题yilia主题 详细的可以查看hexo博客的演示:saucxs.github.io 可以查看在github上生成的静态文件:h ...
- WordPress更换主题空白问题
刚才尝试着更换了一个主题,后来发现预览主页的时候是一片空白.查了很多资料,有说是index.php的权限问题,有说是插件问题,有说是UTL-8编码的问题,我都试过了,发现都不行,后来仔细研究了一下,发 ...
- 使用 css/less 动态更换主题色(换肤功能)
前言 说起换肤功能,前端肯定不陌生,其实就是颜色值的更换,实现方式有很多,也各有优缺点 一.看需求是什么 一般来说换肤的需求分为两种: 1. 一种是几种可供选择的颜色/主题样式,进行选择切换,这种可供 ...
- 总结一下Android中主题(Theme)的正确玩法
在AndroidManifest.xml文件中有<application android:theme="@style/AppTheme">,其中的@style/AppT ...
- Struts2的模板和主题theme及自定义theme的使用
Struts2的模板和主题theme及自定义theme 标签: struts2 2016-03-29 11:22 190人阅读 评论(0) 收藏 举报 分类: javaweb(8) Struts2 ...
- 【转载】总结一下Android中主题(Theme)的正确玩法
http://www.cnblogs.com/zhouyou96/p/5323138.html 总结一下Android中主题(Theme)的正确玩法 在AndroidManifest.xml文件中有& ...
- Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme
原文:Android菜鸟的成长笔记(6)--剖析源码学自定义主题Theme 还记得在Android菜鸟的成长笔记(3)中我们曾经遇到了一个问题吗?"这个界面和真真的QQ界面还有点不同的就是上 ...
随机推荐
- iOS--------手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势
1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性. iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了 ...
- HDU——1418抱歉(平面欧拉公式)
抱歉 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- HDU——1303Doubles(水题,试手二分查找)
Doubles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- 刷题总结——math(NOIP模拟)
题目: 给定两个数字n,求有多少个数字b满足a^b和b^a同余于2^n,其中n<=30,a<=10^9, 题解: 挺巧妙的一道题···从中深深体会到打表的重要性··· 首先根据ab奇偶性分 ...
- Java2WSDL 和 WSDL2Java(Axis)
原文地址:https://www.ibm.com/developerworks/cn/webservices/ws-axisfaq/ 生成或取得WSDL文件 生成客户端或服务端代码 执行WSDL2Ja ...
- 洛谷P1120 小木棍(sticks数据加强版)
题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编 ...
- serializeObject 的应用
function sendForm() { var invOrderModelWrapper = {}; // 头 var objHeader = $('#invOrderForm').seriali ...
- phpcms V9 安装黄页模块后,注册为普通会员并登录,点立即免费入驻企业库出现白板
解决步骤: 1. 将php.ini修改: display_errors = On 2. 再次尝试,显示出错误: Fatal error: require(): Failed opening requi ...
- 无法安装64位版本的visio/office,因为在您的PC上找到了以下32位程序的解决办法
解决方案:按下win+R键,打开运行,输入regedit,打开注册表,依次定位到 HKEY_CLASSES_ROOT\Installer\Products,展开Products后 将这些“00005 ...
- Cryptography I 学习笔记 --- 绪论
课程地址 1. 密码学可以用于保证消息传递的机密性(第三方不可能得到明文)与完整性(密文如果被第三方篡改,有手段可以检测到) 2. 数字签名(用私钥加密待签名文件的hash值) 3. 匿名通信(mix ...