android應用換膚大概有如下幾種方式:
skin apk是通過main apk+skin apk的方式,需要在androidmanifest.xml檔案中配置的android:shareduserid屬性值相同,從而實現主從apk能共享共享資源。
**實現如下:
context context = createpackagecontext("com.example.blueskin", context.context_ignore_security);
int resid = context.getresources().getidentifier("background", "color", flag_blue_skin);
mainview.setbackgroundcolor(context.getresources().getcolor(resid));
在demo實踐中,當我獲取了skin apk的context後,直接context.getresources().getcolor(r.color.background),但程式報錯找不到資源。檢查發現background在main、skin apk中編譯的r值不一樣,造成不能正確的定位到skin中的資源。因此需要先獲取正確的resource id,再根據此id獲取對應資源。
Android實現外掛程式化換膚 一
何為外掛程式化換膚,顧名思義,就是通過外掛程式的形式向宿主apk新增資源 顏色等資源 宿主apk進行資源應用,最終將宿主apk上面的資源替換掉。在進行換膚之前,我們需要了解andorid布局檔案的解析流程,具體可以檢視 setcontentview原始碼解讀。3.1 控制項的生成 通過檢視 setc...
android 換膚模式總結
由於android的設定中並沒有夜間模式的選項,對於喜歡睡前玩手機的使用者,只能簡單的調節手機螢幕亮度來改善體驗。目前越來越多的應用開始把夜間模式加到自家應用中,沒準不久google也會把這項功能新增到android系統中吧。業內關於夜間模式的實現,有兩種主流方案,各有其利弊,我較為推崇第三種方案 ...
換膚功能的實現
記得大概兩年前做過一款應用,涉及的主題 的更換,並不是單純的只換背景顏色,導航欄顏色,很類似於qq裡面的 更換,而是需要更換整個應用的80 還有包括一部分的字型.講完ui布局之後開始設計 2.分頁面設計,儘量減少常駐記憶體的ui,實際上,只有那3個主介面時常駐的,其他的ui都不是常駐。這樣在頁面被開...