Как применить цвета программно к теме приложения? - PullRequest
0 голосов
/ 27 мая 2019

У меня есть проблема с применением цветов к моему приложению. Я хочу добиться, чтобы получить JSON из Интернета, как это:

{
   "colorPrimary": "#45a02c",
   "colorAccent": "#a02c2c",
   "backgroundColor": "#FFFFFF"
}

и сохраните его в объекте, подобном ThemeColor, который я создал. Синтаксический анализ json объекта не является проблемой, но теперь я хочу создать метод в моем классе ThemeColor, который будет применять цвета объекта к моему приложению, так что моя панель инструментов будет окрашена в этот основной цвет, или я могу использовать его с ?attr/colorPrimary.

Это возможно? И что было бы хорошим способом достичь этого?

1 Ответ

0 голосов
/ 27 мая 2019

Определите свою собственную тему внутри style.xml и используйте ее в своей деятельности

style.xml

<style name="CustomTheme" parent="Theme.AppCompat.NoActionBar">
     <!-- Customize your theme here. -->
     <item name="colorPrimary">@color/your_custom_color</item>
     <item name="colorPrimaryDark">@color/your_custom_color_2</item>
     <item name="android:navigationBarColor">@color/your_custom_colot_3</item>
</style>

И используйте эту тему в своей деятельности

public void onCreate(Bundle savedInstanceState) {
    setTheme(android.R.style.CustomTheme); //here your custom theme
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
}
...