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

先说下我的思路:

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图标的更新。)

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

资源结构目录如下

手机SD卡根目录:_theme------------------下面包含各个ZIP压缩格式的主题包。

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

解压目录如下:

icon:放图标资源:目录结构为icon_res_drawble-xhdmi

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

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

(以上主题包资源均来自MIUI主题的目录结构。)

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

由于只是做测试,所有图标也只是随便替换几个而已。功能实现了,后面的事情就好了。修修补补的事情了。

时间: 2024-08-28 17:00:41

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

WordPress更换主题空白问题

刚才尝试着更换了一个主题,后来发现预览主页的时候是一片空白.查了很多资料,有说是index.php的权限问题,有说是插件问题,有说是UTL-8编码的问题,我都试过了,发现都不行,后来仔细研究了一下,发现是因为我用的是Wordpress后台管理上传的主题,我到blog文件夹下的theme文件看到更换的主题下面的文件大小全是0,才发现原来用后台上传不上去,不知道后台出了什么问题,然后我把那个主题文件夹删掉,再手动上传主题文件夹,再到管理后台更换主题,ok,问题解决.

Extjs 更换主题

这里基于 Extjs4.2(发文时官方刚发布了最新版5.0) 进行开发的,更换主题后,主题信息保存在本地 cookie 中,如果要保存在数据库中,请自行修改! 使用一个Combobox 让用户选择皮肤! { xtype: 'combobox', itemId: 'mycombobox1', padding: 0, fieldLabel: '皮肤更换 ', labelAlign: 'right', labelPad: 1, labelWidth: 65, name: 'theme', value:

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

简介 Android的样式(Style)和主题(Theme)文件就好比WEB开发中的CSS一样,可以实现UI界面的风格统一管理,这和Windows平台的XAML格式(Silverlight.WPF)类似.比如我们遇到特殊的节日我们只需变更我们的Style和Theme就可以切换一种新的Style和Theme.还有现有的一些应用提供我们可以自定义UI风格,就是应用的这个原理.Android的主题样式文件存储在res\values目录下,如res\values\styles.xml. 样式(Style

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

1."自定义"常用快捷键(设置成跟Eclipse差不多) 按照路径:File -> Settings -> Appearance & Behavior -> Keymap -> Copy 一份 Eclipse,命名为 Eclipse_blog.snsgou.com 快捷键 功能 路径 Ctrl + / 双斜杠注释 Main menu -> Code -> Comment width Line Comment Ctrl + Shilft + /

EasyUI更换主题

EasyUI默认的主题有几个 EasyUI的使用需要导入 <script type="text/javascript" src="/resources/js/lib/easyui/jquery.min.js"></script> <script type="text/javascript" src="/resources/js/lib/easyui/jquery.easyui.min.js">

Struts2的模板和主题theme及自定义theme

Struts2的模板和主题theme及自定义theme 标签: struts2 2016-03-29 11:22 190人阅读 评论(0) 收藏 举报  分类: javaweb(8)  Struts2提供了三种主题,ajax, simple, css_xhtml,xhtml,它默认的是xhtml主题,开发时我们一般都选simple.因为Struts2所有的UI标签都是基于主题和模板的,主题和模板是Struts2所有UI标签的核心.模板是一个UI标签的外在表示形式,例如:当我们使用<s:selec

Android应用界面主题Theme使用方法

主题Theme就是用来设置界面UI风格,可以设置整个应用或者某个活动Activity的界面风格.在Android SDK中内置了下面的Theme,可以按标题栏Title Bar和状态栏Status Bar是否可见来分类: [html] view plaincopyprint? •android:theme="@android:style/Theme.Dialog"   将一个Activity显示为能话框模式 •android:theme="@android:style/The

Android 主题theme说明 摘记

主题Theme就是用来设置界面UI风格,可以设置整个应用或者某个活动Activity的界面风格.在Android SDK中内置了下面的Theme,可以按标题栏Title Bar和状态栏Status Bar是否可见来分类: [html] view plain copy print? •android:theme="@android:style/Theme.Dialog"   将一个Activity显示为能话框模式 •android:theme="@android:style/T

【Android开发基础】应用界面主题Theme使用方法

主题Theme就是用来设置界面UI风格,可以设置整个应用或者某个活动Activity的界面风格.在Android SDK中内置了下面的Theme,可以按标题栏Title Bar和状态栏Status Bar是否可见来分类: 这些主题可以应用到整个应用Application范围或者某个活动Activity范围中. 应用Application范围在AndroidManifest.xml中的application节点中设置theme属性,主题theme应用到整个应用程序中.<application