標籤:blog http ar sp 檔案 資料 2014 on log
先說下我的思路:
luancher3裡面更換表徵圖的邏輯如下:
先從APP資源套件裡查詢--資料庫查詢--其他地方查詢ICON
因此,我們只需要把 從資料庫擷取ICON 代碼提前到 從APP資源套件提取即可。
再來我們外部APP只需對Launcher.db的 ICON欄位進行 添加表徵圖,即可。再通知案頭去更新表徵圖,即可完成整個案頭的 表徵圖自動更換的效果。
這樣做的優點:
代碼修改量少,主題的APP無須跟Launcher3這個案頭APP有任何關聯。相當於外部應用。
(前面第8我已經稍微簡單介紹了下launcher3的內容提供者,需要寫入2個許可權)
具體思路比較簡單清晰。並且實現了。
有需要的可以留言,我可以給demo哈。
讀取按鈕:
通過內容提供者對Launcher.db資料庫進行讀取資訊並解析成List<shotCupInfo>對象,方便後面進行遍曆更新表徵圖到資料庫。
更新按鈕:點擊後,將根據前面擷取到的APP的ID進行指定更新Launcher.db的 ICON資料庫。在這裡我們會將SD卡裡面ICON轉為位元組數組,進行儲存到資料庫。
應用主題:通知案頭去重新整理。(這一步其實不用做的,因為當你進行第二步,更新操作的時候,訪問資料庫時候,案頭的資料庫註冊了觀察者監聽資料庫發生改變,則進行workspace表徵圖的更新。)
主題來源:MIUI佈景主題資源包解壓而來:
資源結構目錄如下
手機SD卡根目錄:_theme------------------下麵包含各個ZIP壓縮格式的主題包。
當我們啟動主題APP的時候,會自動檢測_theme該目錄下ZIP檔案,如果有存在就進行ZIP解壓,並刪除原來的ZIP檔案,在這裡我們進行了資源的解壓。
解壓目錄如下:
icon:放表徵圖資源:目錄結構為icon_res_drawble-xhdmi
wallpaper:放的是壁紙2張,一張為鎖屏,一張為預設主介面壁紙
preview:放的主題的,便於主題市場,進行擷取資源顯示給使用者看。
(以上主題包資源均來自MIUI主題的目錄結構。)
demo點擊應用主題後:更換表徵圖示範:
由於只是做測試,所有表徵圖也只是隨便替換幾個而已。功能實現了,後面的事情就好了。修修補補的事情了。
(9)launcher3 之 外部 更換主題Theme APP demo 實現原理以及demo