Android實(shí)現(xiàn)換膚的兩種思路分析
本文分析了Android實(shí)現(xiàn)換膚的兩種思路。分享給大家供大家參考,具體如下:
這里來了解換膚實(shí)現(xiàn)及不同方案的差異和使用場合。
一、從功能上劃分
1) 軟件內(nèi)置多個(gè)皮膚,用戶不能修改;
2) 官方提供皮膚下載,用戶使用下載的皮膚;
3) 官方提供皮膚制作工具或方法,用戶自制皮膚。
二、皮膚定義
軟件皮膚包括圖標(biāo)、字體、布局、交互風(fēng)格等,換膚就是換掉皮膚包括的部分或所有資源。
三、皮膚與APP分離
1)打包皮膚文件
默認(rèn)格式是apk。例如Launcher,它的桌面皮膚格式是一個(gè)apk;
自定義的格式為zip。例如墨跡天氣皮膚擴(kuò)展名是mja,搜狗輸入法的皮膚擴(kuò)展名是sga,它們的文件格式實(shí)際上都是zip。
四、資源訪問
1)apk格式
apk之間讀取數(shù)據(jù)的條件是:有相同簽名并且AndroidManifest.xml中配置android:sharedUserId有相同的屬性值,這樣兩個(gè)apk運(yùn)行在同一個(gè)進(jìn)程中,就能互相訪問數(shù)據(jù)了。
方法如下:
a) 應(yīng)用程序和皮膚程序的AndroidManifest.xml中配置
例如:
b) 文件與應(yīng)用apk中對(duì)同一功能的皮膚文件名要一致
例如:應(yīng)用程序的背景圖片路徑:\Skin\res\drawable-hdpi\XX.png
那么皮膚apk中的背景圖片文件路徑也應(yīng)該是:Skin\res\drawable-hdpi\XX.png
c)訪問資源的方法
獲取到com.zj.skin對(duì)應(yīng)的Context,通過返回的context對(duì)象就可以訪問到com.zj.skin中的任何資源。
例如:應(yīng)用apk要獲得皮膚apk中的bg.png,
這樣就得到了圖片的引用,其他xml資源文件的獲取方式也是類似的。
2)自定義擴(kuò)展名的zip格式的皮膚
重點(diǎn):讀取zip文件中的資源以及皮膚文件存放策略。
方案:如果每次啟動(dòng)都讀取SD卡上的皮膚文件,就會(huì)影響APP執(zhí)行速度。最好是提供設(shè)置皮膚的界面,把用戶選擇的皮膚文件解壓縮到皮膚路徑下,這樣不需要跨存儲(chǔ)器讀取,速度較快,而且不需要每次都去zip壓縮包中讀取,不依賴SD卡中的文件,就算皮膚壓縮包被刪除了也不會(huì)影響。
實(shí)現(xiàn)方法:
a) 在軟件的幫助或者官網(wǎng)的幫助中提示用戶將皮膚文件拷貝到SD卡指定路徑下。
b) 在軟件中提供皮膚設(shè)置界面??梢栽诓藛位蛘咴谠O(shè)置中。可參考墨跡、搜狗輸入法、QQ等支持換膚的軟件。
c) 加載指定路徑下的皮膚文件,讀取其中的縮略圖,在皮膚設(shè)置界面中顯示,將用戶選中的皮膚文件解壓縮到皮膚路徑下。
d) APP優(yōu)先讀取皮膚路徑下的資源。如果沒有則使用apk中的資源。
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android實(shí)現(xiàn)apk插件方式換膚的實(shí)例講解
- Android開發(fā)實(shí)現(xiàn)切換主題及換膚功能示例
- android使用SkinManager實(shí)現(xiàn)換膚功能的示例
- Android 換膚技術(shù)資料整理
- android換膚功能 如何動(dòng)態(tài)獲取控件中背景圖片的資源id?
- Android應(yīng)用開發(fā)中實(shí)現(xiàn)apk皮膚文件換膚的思路分析
- 分析Android App中內(nèi)置換膚功能的實(shí)現(xiàn)方式
- Android編程實(shí)現(xiàn)換膚功能實(shí)例
- 基于Android-Skin-Loader實(shí)現(xiàn)換膚效果
相關(guān)文章
Android自定義ImageView實(shí)現(xiàn)自動(dòng)放大縮小動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了Android自定義ImageView實(shí)現(xiàn)自動(dòng)放大縮小動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Flutter利用Hero組件實(shí)現(xiàn)自定義路徑效果的動(dòng)畫
本篇介紹了如何利用Hero動(dòng)畫組件的createRectTween屬性實(shí)現(xiàn)自定義路徑效果的動(dòng)畫。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-06-06
Flutter實(shí)現(xiàn)滾動(dòng)選擇數(shù)字
這篇文章主要為大家詳細(xì)介紹了Flutter實(shí)現(xiàn)滾動(dòng)選擇數(shù)字,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Android透明化和沉浸式狀態(tài)欄實(shí)踐及源碼分析
這篇文章主要介紹了Android透明化和沉浸式狀態(tài)欄實(shí)踐及源碼分析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Android編程實(shí)現(xiàn)微信分享信息的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)微信分享信息的方法,實(shí)例分析了Android官方demo示例,講述了Android微信分享功能的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-10-10
android開發(fā)中常用的Eclipse快捷鍵詳細(xì)整理
android開發(fā)中常用的Eclipse快捷鍵詳細(xì)整理方便查找,需要的朋友可以了解下2012-12-12

