Android 14(UpsideDownCake)有一个单色/灰度动态颜色主题,可以在1中看到,我如何检测模式,以便我可以对模式进行进一步的调整,例如。在这种模式下制作不使用R.color.system_* 的UI元素,如UI图像?
(Android 14的预览图像截图由我)
7hiiyaii1#
这个答案有望随着Android 14的最终版本更新,但显然每个this都会有AccessibilityManager.getUiContrast(),我现在找不到,但一个天真的解决方案可能对旧版本的Android也有帮助(可能可以使用第三方应用程序获得自定义版本的单色模式)也许可以使用这样的东西,我在这里进行审查,
AccessibilityManager.getUiContrast()
val Context.isDynamicGrayscale: Boolean get() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) return false val hsv = FloatArray(3) return listOf( android.R.color.system_accent1_500, android.R.color.system_accent2_500, android.R.color.system_accent3_500, ).all { Color.colorToHSV(getColor(android.R.color.system_accent1_500), hsv) hsv[1] == .0f } }
1条答案
按热度按时间7hiiyaii1#
这个答案有望随着Android 14的最终版本更新,但显然每个this都会有
AccessibilityManager.getUiContrast()
,我现在找不到,但一个天真的解决方案可能对旧版本的Android也有帮助(可能可以使用第三方应用程序获得自定义版本的单色模式)也许可以使用这样的东西,我在这里进行审查,