2013-06-29 21 views
4

Stackoverflow幫助我極大地提升了我的項目。謝謝你。現在這是我的問題:Android:使用內部存儲的XML佈局

我爲一家公司做了一個應用程序。該公司有許多客戶將使用該應用程序。該公司希望爲每位客戶定製應用佈局。他們想要改變元素&按鈕圖像的背景顏色等等。

現在,我想:從他們的服務器

  • 下載自定義XML佈局
  • 下載自定義按鈕圖像等

(這兩個正在從資源加載)然後:

  • 使用這些風格的應用程序。

因此,下載不會是一個問題。將數據存儲在內部存儲器中也不會成爲問題。但。

如何讓應用程序使用自定義的xml佈局,該佈局可以在內部存儲中找到?直到現在我已經使用了這個。

setContentView(R.layout.activity_main); 

現在,我想設置相同的,但基於在內部存儲中找到的XML。

此外,我想從內部存儲器,而不是從資源加載按鈕等圖像。現在我用這個:

findViewById(R.id.button_x).setBackgroundResource(R.drawable.button02); 

因此,簡而言之,我的問題是:

有沒有一種方法來實現上述代碼的功能,但是從內部存儲的文件?

回答

2

也許你可以創建你下載的文件XmlPullParser,通過XmlPullParser obect它充氣,並把它作爲參數設置爲setContentView。 doc for XmlPullParser是here。您應該使用的充氣方法是here。我從來沒有triedm,但teorically似乎可能

編輯:

@RoundSparrowhilltx的項目可以發現here

+1

感謝您的回覆,這似乎是要走的路,直到我發現這個在docs:「出於性能方面的考慮,查看通脹在很大程度上依賴於在構建時對XML文件進行預處理,因此,目前不可能在運行時通過普通XML文件將XmlPullParser與LayoutInflater一起使用。我期望這會是一個問題,不是嗎? – r0ber7

+0

哦,我的壞。然後,我認爲唯一的方法是手動解析xml並以編程方式創建層次結構。 – Blackbelt

+0

如果有人對此嘗試感興趣:有一個開源應用程序AnDroidDraw,它有一個簡單的類開始。參考:https://code.google.com/p/droiddraw/source/browse/trunk/AnDroidDraw/src/org/droiddraw/android/ViewInflater.java - 我可以發佈一個稍微改進的解析一些顏色,ImageView佔位符。我想看看是否有人想擴大這個。 –