有没有办法以编程方式获取Android Q System颜色强调

Waz*_*_Be 6 android

如您所见,Google在Android设置中提供了一种选择系统范围的色彩强调的方法:

在此处输入图片说明

我首先认为这不可能在我的应用程序中使用,但是Gboard成功地将其用于主题UI元素,正如我们在此新闻中看到的那样:https ://9to5google.com/2019/05/08/android-q -gboard-accent-color /

然后,我想知道这是一个公共API,还是有一种方法可以从一种或另一种方法获取它。

感谢您的任何想法。

在此处输入图片说明

Ján*_*iár 5

您必须使用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
}
Run Code Online (Sandbox Code Playgroud)