android - 检测您的 Material 是否存在于设备中

标签 android material-design material-you

所以,老板让我从Android 12开始分析如何实现Material You颜色。我一直在研究它,每个关于“如何做”的页面的每个博客都告诉你,你需要在家里按住屏幕,然后转到“壁纸和样式”并更改您的壁纸。不过有一个问题。
我记得当 Android 12 处于 Beta 版时,它支持 Material You 颜色。但是(我假设)在正式发布后,此支持已被删除,因为我无法找到该选项。这是我在主屏幕按住时的样子:
image
它说“壁纸”,当我点击它时,它打开一个名为墙纸和样式的菜单,它只是重定向到 动态壁纸 .我在 Android 12 官方版本中找不到壁纸颜色选项。但是,它出现在即将推出的 API 32(我相信是 Android 13)模拟器上。
经过一番研究,我发现系统在system_accent1_600等系统资源下生成壁纸颜色。等从 API 31 开始可用(更多信息 here )。当我使用处于测试阶段的 API 32 模拟器时,这确实有效,但它默认为我还没弄清楚从哪里来的其他东西(强调色为蓝色,中性色为灰色,背景色)在 API 31 官方模拟器上。
这是问题:
是 Material 你的颜色官方从 Android 12 (API 31) 开始支持?如果是,那为什么我无法在 Android 的官方模拟器上找到它?
另外,是否可以检测设备是否支持 Material You 颜色 有不同的选项 ?

最佳答案

我认为这就是你要找的:

public static boolean isDynamicColorAvailable() 
{
    return VERSION.SDK_INT >= VERSION_CODES.S && DYNAMIC_COLOR_SUPPORTED_MANUFACTURERS.contains(Build.MANUFACTURER.toLowerCase());   
}
中找到这个动态颜色 com.google.android.material.color 中的类
你可以简单地这样称呼它:
boolean isdca = DynamicColors.isDynamicColorAvailable();
我希望这能回答最后一部分。

关于android - 检测您的 Material 是否存在于设备中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70520414/

相关文章:

android - 更改 Material You 底部导航栏中 Activity 和非 Activity 状态下的图标

android - Material Design 3 顶部应用栏没有阴影。如何启用它?

android - 如何让溢出的弹出菜单避免遮挡操作栏?

c# - 使用 C# 的 CSharpScript 从另一个程序集中的字符串设置局部变量

android - 请教AChartEngine的几个问题

android - Android Studio 中的 Gradle 依赖项

javascript - 如何使用 javascript 显示/隐藏 Material Design lite Spinner

java - Android:将按钮设置为随机位置

android - 找不到 fragment ID 的 View