我正在研究一個非常雜亂的應用程序,並且第一次帶有風味。應用程序具有相同的背景顏色,可繪製等所有4,5種風味。只有徽標是不同的。如何根據風味自動更改drawables?
現在,我必須做出完全不同佈局的新口味。背景顏色應該是黃色而不是灰色,可繪製圖像應該是黑色而不是白色。問題是,我有100個不同的白色圖像。有沒有辦法可以將它們自動更改爲黑色? (設計師可以重畫他們或任何是黑色的,我可以把它們放在那個味道的可繪製文件夾中)或者我將不得不以編程方式檢查是否使用了新味道,然後在每個使用白色drawable的小部件上調用setDrawable(newBlackImage)?這似乎是一個非常複雜的方式,因爲所有的繪圖都是通過XML佈局來設置的。
他們一直在使用flavor的方式是創建資源bool文件,然後檢查代碼是否某個鍵的值爲true/false,然後隱藏/顯示一些東西...所以我認爲我應該做一些類似的事情,或不是?
這是對我的口味的一個項目結構看起來像:
正如你所看到的,每一種滋味只有不同的啓動和登錄界面的圖標。還有每個都有自己的數組,布爾和字符串資源文件。但是他們都擁有相同的佈局資源和可繪製的白色圖標。
如果使用VectorDrawables而不是圖像資源,他們可以通過編程有色,而不使用不同的文件。 –
不幸的是,他們都是圖像資源:/設計師告訴我,他可以給我黑色的,所以這不是問題。主要問題是,我有一個佈局,將imageview的src設置爲白色圖標之一。我只是想避免以編程方式將其更改爲黑色 – joe