您已经注意到,Google在Android设置中提供了一种选择系统范围的色彩强调的方法:
我首先认为这不可能在我的应用程序中使用,但是Gboard成功地将其用于主题UI元素,正如我们在此新闻中看到的:https://9to5google.com/2019/05/08/android-q-gboard-accent-color/
那时我想知道这是一个公共API,还是有一种方法可以从一种或另一种方法中获取它。
感谢任何想法。
答案 0 :(得分:3)
您必须使用Theme.DeviceDefault
主题作为独立于AppCompat
世界的源。
我测试了以下代码段,当我在Android Q上更改装饰色时,效果很好:
@ColorInt
fun getDeviceAccentColor(context: Context) : Int {
val value = TypedValue()
val ctx = ContextThemeWrapper(context, android.R.style.Theme_DeviceDefault)
ctx.theme.resolveAttribute(android.R.attr.colorAccent, value, true)
return value.data
}