我可以以编程方式更改强调色 (AppCompat) 吗?

Can i change accent color (AppCompat) programmatically?

我有:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorAccent">@color/myColor</item>
</style>

但我想允许用户更改强调色。我可以用 AppCompat 做吗?

不可以,因为强调色是在主题中定义的,而主题在 Android 中是只读的。

您唯一能做的就是切换主题或手动设置每个组件的颜色。

注意:您可以将主题应用到 UI 的一部分而不是整个 Activity 以更改强调色(或其他东西)本地。为此,您可以通过 AppCompat 库在 XML 布局中使用 android:theme 属性,或者您可以通过提供 ContextThemeWrapper 作为 LayoutInflater 的上下文来扩充布局.