正如您所注意到的,Google在Android设置中添加了一种选择系统范围颜色强调的方法:
我最初认为这将无法在我的应用程序中使用,但是Gboard成功地使用它来相应地为UI元素设置主题,正如我们在这篇新闻中看到的那样:https://9to5google.com/2019/05/08/android-q-gboard-accent-color/
我随后想知道这是否是公共API,或者有没有办法从某种方式获取它。
感谢任何建议。
正如您所注意到的,Google在Android设置中添加了一种选择系统范围颜色强调的方法:
我最初认为这将无法在我的应用程序中使用,但是Gboard成功地使用它来相应地为UI元素设置主题,正如我们在这篇新闻中看到的那样:https://9to5google.com/2019/05/08/android-q-gboard-accent-color/
我随后想知道这是否是公共API,或者有没有办法从某种方式获取它。
感谢任何建议。
您需要使用与AppCompat
无关的源主题Theme.DeviceDefault
。
我测试了以下代码片段,并在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
}
android:theme
属性为 Theme.DeviceDefault
,那么是可以的。我认为你可能想将其用作个人主题,但 Android 不支持像 CSS 中合并样式那样的操作。 - János Sicz-Mesziár