所以,我的老板让我分析如何从Android 12开始实现Material You颜色。我一直在研究,但每篇关于“如何做到这一点”的博客都告诉你,你需要按住主屏幕,然后进入“壁纸和样式”并更改壁纸。不过有一个问题。
我记得当Android 12处于Beta版时,它支持Material You颜色。然而(我认为)在正式发布后,此支持已被删除,因为我找不到该选项。当我按住主屏幕时,它看起来像这样: 当我点击“壁纸”时,它显示“壁纸”,但没有打开名为“壁纸和样式”的菜单,而是重定向到动态壁纸。我在正式的Android 12版本中找不到壁纸颜色选项。然而,在即将推出的API 32(我认为是Android 13)模拟器上可以找到该选项。
经过一番研究,我发现系统会在诸如
问题是:
Material You颜色是否从Android 12(API 31)开始得到了官方支持?如果是,则为什么我无法在Android的官方模拟器上找到它?
此外,是否可以检测设备是否支持Material You颜色,并提供不同的选项?
我记得当Android 12处于Beta版时,它支持Material You颜色。然而(我认为)在正式发布后,此支持已被删除,因为我找不到该选项。当我按住主屏幕时,它看起来像这样: 当我点击“壁纸”时,它显示“壁纸”,但没有打开名为“壁纸和样式”的菜单,而是重定向到动态壁纸。我在正式的Android 12版本中找不到壁纸颜色选项。然而,在即将推出的API 32(我认为是Android 13)模拟器上可以找到该选项。
经过一番研究,我发现系统会在诸如
system_accent1_600
等系统资源下生成壁纸颜色,这些资源从API 31开始提供(更多信息here)。在使用API 32 beta模拟器时,这确实有效,但在API 31官方模拟器上默认为其他内容(强调色彩为蓝色,中性色彩为灰色,即背景色),我还没有找到来源。问题是:
Material You颜色是否从Android 12(API 31)开始得到了官方支持?如果是,则为什么我无法在Android的官方模拟器上找到它?
此外,是否可以检测设备是否支持Material You颜色,并提供不同的选项?
DynamicColors.applyIfAvailable(this)
,它应用了蓝色。我正在使用Theme.Material3.DayNight.NoActionBar
。 - DrHowdyDoo