Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現換膚功能(一)

Android實現換膚功能(一)

編輯:關於Android編程

上周有個朋友給建議說講講換膚吧,真巧這周公司的工作安排也有這個需求,換的地方之多之繁,讓人傷神死了。正所謂磨刀不誤砍柴工,先磨下刀,抽出一個工具類,寫了個關於換膚的簡單demo。

Android中換膚的實現有幾種方法,我使用的是讀取共享進程空間另一apk中的資源的方法。大致的原理如下,讓你的app和一個只有資源文件的app運行在同一進程中,這樣你的app就可以訪問另一app的資源了。原理很簡單,下面我們分步驟講解實現過程。

一、共享進程運行的空間

\

通過在兩個工程下的manifest根節點添加相同的android:sharedUserId屬性值,再者通過同一簽名文件打包,保證兩個app的簽名值一樣,這樣app就能運行於同一進程中了。這個是資源文件共享的前提。

二、抽象實現資源共享的工具類\

根據ReflectionUtil的方法區我們可以看到,它的作用有三個:getSkinContext基於包名構建一個Context的實例;getIdentifier則是基於包名、資源文件夾名、資源名獲取對應的資源id;最後color、drawable等方法是根據包名、資源名,返回可直接使用的資源值。

三、使用實例

\

使用起來有點麻煩,當大量資源需要替換的話,編碼會非常麻煩。那看下面簡單的辦法

\

今天的文章比較短,大家如有好的想法或者其他換膚好的實現,請私信我,我會在下面幾天整理後繼續為大家介紹。

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved