該文章基於V1.6.9版本 java
apkplug主題切換有兩個層次的切換,這篇文章只講解通用主題切換層次 android
一 何爲通用主題切換 佈局
apkplug通用主題切換能夠簡單的理解爲一套可動態替換的系統主題(由主題包提供)。它是apkplug在系統主題與應用activity主題之間新增的一層主題樣式。它們之間有疊加關係 字體
注:系統主題只支持對Button,ListView,Activity背景等已定義的系統控件樣式進行切換,普通應用可經過(Activity.setTheme())設置系統或自定義主題。 spa
二 apkplug通用主題的做用 設計
由以上圖示,咱們可經過一些設置實現動態替換一些系統控件的樣式,Button,背景圖片,字體,顏色,大小等。 code
三 apkplug通用主題方案設置流程 圖片
1.主題包按照安卓主題設計流程設計一套主題樣式如: 開發
<style name="AppTheme_Default" parent="@android:style/Theme.Light"> <!--Button樣式 --> <item name="android:buttonStyle">@style/ButtonStyle</item> <!--activity 背景 --> <item name="android:windowBackground">@drawable/rootblock_default_bg</item> <!-- 字體顏色 --> <item name="android:textColor">@color/red</item> </style>
2.經過如下代碼將該主題設置爲apkplug層主題 get
OSGIServiceAgent<ThemeControl> agent=new OSGIServiceAgent<ThemeControl>(mcontext,ThemeControl.class.getName()); agent.getService().setTheme(mcontext,mcontext.getBundle(), R.style.AppTheme_Another);
三 apkplug通用主題的侷限性
由於主題是疊加的關係,因此apkplug的主題樣式極可能沒法所有適用到上層的Activity界面中,由於大部分狀況下咱們會單獨對Activity的佈局和控件作一些處理。
四 解決方案
由於通用主題的侷限性,因此咱們又爲apkplug設計了一套適用於自定義控件的主題切換方案,經過這套方案開發者能夠很簡單靈活的定義切換規則且不失靈活性。咱們稱之爲"自定義主題切換"