Как изменить значение цвета в android с помощью кода java - PullRequest
1 голос
/ 08 января 2020

Я хочу изменить шестнадцатеричное значение цвета для переменной цвета и цвета colorAccent, определенных в цветах. xml файл в MainActivity. java код.

Какой код следует записать в файл java внутри метода или переключателя или оператора if / else для его изменения?

enter image description here

Ответы [ 2 ]

4 голосов
/ 08 января 2020

Вы должны использовать темы и стили для изменения значений цвета. См .: Стили и темы

По сути, вы должны объявить цвет в стилях. xml:

<style name="GreenText" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#00FF00</item>
</style>

<style name="RedText" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#ff0000</item>
</style>

Затем объявите, какую тему использовать в onCreate (перед setContentView ()):

 switch (theme) {
     case 1:
         setTheme(R.style.Green);
         break;
     case 2:
         setTheme(R.style.Red);
         break;
 }

Редактировать : Вы можете изменить тему только во время onCreate () - если вы хотите изменить ее впоследствии, во время выполнения вам придется воссоздать активность по телефону recreate()

0 голосов
/ 08 января 2020

К сожалению, все значения цвета (и другие ресурсы) внутри каталога ресурсов жестко закодированы как stati c final int. Это означает, что нет способа изменить значения во время выполнения. Тем не менее, вы можете использовать одно из предложенных ранее решений или взглянуть на это превосходное

, здесь объяснено

...