Прежде всего, этот вопрос задает очень похожий вопрос. Однако мой вопрос имеет тонкую разницу.
Что я хотел бы знать, можно ли программно изменить атрибут colorPrimary
темы на произвольный цвет?
Так, например, мы имеем:
<style name="AppTheme" parent="android:Theme.Material.Light">
<item name="android:colorPrimary">#ff0000</item>
<item name="android:colorAccent">#ff0000</item>
</style>
Во время выполнения пользователь решает, что хочет использовать #ccffff
как основной цвет. Конечно, я не могу создавать темы для всех возможных цветов.
Я не возражаю, если мне приходится делать хакерские вещи, например, полагаться на частные внутренние лица Android, если они работают с использованием общедоступного SDK.
Моя цель состоит в том, чтобы в конечном итоге ActionBar
и все виджеты, такие как CheckBox
, использовали этот основной цвет.