2012-01-19 32 views
4

我想使我的應用程序有幾個皮膚。我的主要目的不是讓使用者換膚,而是讓我爲每位顧客定製皮膚。分離資源/文件到不同的apk進行蒙皮

通過使用風格和主題,我可以分開佈局皮膚信息。它像魅力一樣工作,但需要將所有皮膚和所有資源(包括重量級位圖)包含在應用程序中,這似乎像創造更多皮膚一樣浪費寶貴的空間。

有一種方法,使自動生成(螞蟻)腳本,並讓它決定包括什麼,但對於其他一些原因,是不可取的。

我已經看到(可單獨下載和安裝)使用分離的主題文件,市場上的一些應用程序,使我有移動這些信息進入分離APK可以實現猜測。

我已經走到這一步,這讓我的應用程序和皮膚提供商的APK具有相同的用戶名有彼此更自由出入,但還是不知道如何獲得資源。

內容提供者可能是一個解決方案,但是從個XML回代碼移動佈局信息,並具有一些性能問題加層的成本不adviceable的solemly視覺效果。

這個問題的最佳做法是什麼?

一個更重要的信息:我必須使用API​​ 7級(2.1),所以只在更高級別的API的解決方案是超出範圍。

回答

1
private static Resources getThemeResources(String themePackage, Context context) throws NameNotFoundException { 
    try { 
     return [context.getPackageManager().getResourcesForApplication(themePackage);][1] 
    } catch (Exception e) { 
     return null; 
    } 
} 

這會給你指定apk的資源。 themePackage應該是你嘗試訪問的主題的完整包。上下文是調用者的上下文,即您的應用程序的上下文。