私は本当に面倒なアプリとフレーバーでは初めてです。アプリケーションには、すべて同じ背景色、描画可能なものなどの4,5種類の味があります。ロゴのみが異なります。フレーバーに応じてdrawableを自動的に変更する方法は?
今、私は全く違ったレイアウトで新しい味をつくる必要があります。背景色はグレーではなく黄色で、描画可能なイメージは白ではなく黒でなければなりません。問題は、私は100種類の白いイメージのようです。私はそれらを自動的に黒に変える方法はありますか? (デザイナーはそれらを再描画することができますし、何でも黒色にして、私はそのフレーバーのdrawableフォルダに置くことができます)または新しい味が使用されているかどうかをプログラムでチェックしてから、白い描画可能なすべてのウィジェットでsetDrawable(newBlackImage)それは、XMLレイアウトを使ってすべての描画可能ファイルが設定されているので、非常に複雑な方法です。
フレーバを使用していた方法は、リソースboolファイルを作成し、非表示/いくつかのものを表示...だから私はこれと同様の何かを行う必要がありますか?
これは私の味の一つのためのプロジェクト構造は次のようになります。
あなたが見ることができるように、すべての味が異なるだけでランチャーとログイン画面のアイコンがあります。また、それぞれに独自の配列、bool、文字列のリソースファイルがあります。しかし、それらのすべては、白いアイコンで同じレイアウトリソースとドロアブルを共有します。
をあなたの代わりに、画像リソースのVectorDrawablesを使用している場合、彼らは別のファイルを使用せずに、プログラムで着色することができます。 –
残念ながら、それらのすべては画像リソースです:/ Designerは私に黒いものを送ることができるので、問題ではないと私に言いました。主な問題は、私は白いアイコンの1つとしてイメージビューのsrcを設定するレイアウトがあるということです。私はちょうどプログラム的に黒いものに変更することを避けたい – joe