现在的位置: 首页 > 综合 > 正文

apkplug主题皮肤切换之通用主题-04

2018年02月23日 ⁄ 综合 ⁄ 共 1126字 ⁄ 字号 评论关闭

该文章基于V1.6.9版本

    apkplug主题切换有两个层次的切换,这篇文章只讲解通用主题切换层次

一 何为通用主题切换

    apkplug通用主题切换可以简单的理解为一套可动态替换的系统主题(由主题包提供)。它是apkplug在系统主题与应用activity主题之间新增的一层主题样式。它们之间有叠加关系

注:系统主题只支持对Button,ListView,Activity背景等已定义的系统控件样式进行切换,普通应用可通过(Activity.setTheme())设置系统或自定义主题。

二 apkplug通用主题的作用

    由以上图示,我们可通过一些设置实现动态替换一些系统控件的样式,Button,背景图片,字体,颜色,大小等。

三 apkplug通用主题方案设置流程

    1.主题包按照安卓主题设计流程设计一套主题样式如:    

1 <style
name=
"AppTheme_Default" parent="@android:style/Theme.Light">
2     <!--Button样式 
-->
3     <item
name=
"android:buttonStyle">@style/ButtonStyle</item>
4     <!--activity
背景  -->
5     <item
name=
"android:windowBackground">@drawable/rootblock_default_bg</item>
6     <!--
字体颜色 -->
7     <item
name=
"android:textColor">@color/red</item>
8 </style>

    2.通过以下代码将该主题设置为apkplug层主题 

1 OSGIServiceAgent<ThemeControl>
agent=
new OSGIServiceAgent<ThemeControl>(mcontext,ThemeControl.class.getName());
2 agent.getService().setTheme(mcontext,mcontext.getBundle(),
R.style.AppTheme_Another);

三 apkplug通用主题的局限性

    因为主题是叠加的关系,所以apkplug的主题样式很可能无法全部适用到上层的Activity界面中,因为大部分情况下我们会单独对Activity的布局和控件做一些处理。

四 解决方案

    因为通用主题的局限性,所以我们又为apkplug设计了一套适用于自定义控件的主题切换方案,通过这套方案开发者可以很简单灵活的定义切换规则且不失灵活性。我们称之为"自定义主题切换"

抱歉!评论已关闭.