获取Android系统配色(Android 10系统配色)

时间:2019-10-12 09:26:18

标签: android android-theme android-styles android-10.0

这个问题应该很简单,但是我没有找到答案。我有一个带有可选重音的应用程序,并且我试图添加一个使用android系统重音的选项(像Lawnchair之类的应用程序有这样的选项)。在系统重音的样式中,我尝试以各种可能的方式来获得此重音:

?android:colorAccent

?android:attr/colorAccent

?attr/colorAccent

这是样式:

<style name="AppTheme.systemAccent" parent="AppTheme">
    <item name="colorAccent">???</item>
</style>

似乎没有任何作用,并且应用程序崩溃了,但我确定这是可能的。当我使用普通颜色时,重音选择效果很好。我在哪里错了?

编辑:为了清楚起见,我正在尝试获取系统的配色,即设置,通知面板等中使用的系统级颜色。现在可以在Android 10中选择该颜色,之前可以在Oxygen OS之类的rom中进行选择。假设我在 Android 10设备上的设置->自定义中选择了红色的口音。我想在我的应用中得到这个红色的口音

3 个答案:

答案 0 :(得分:5)

您可以通过编程获取它:

TypedValue typedValue = new TypedValue();
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this,
     android.R.style.Theme_DeviceDefault);
contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent,
     typedValue, true);
int color = typedValue.data; 

请明确说明,我指的是Android Q System的色彩强调:

enter image description here enter image description here

答案 1 :(得分:1)

好的。我做了一些深入的研究和反复试验。之后,我发现可以访问私有财产@*android:color/accent_device_default_light只有当您将活动的父类从AppCompatActivity更改为Activity时才有可能,因为AppCompat无法使用此私有属性设置工具栏。此外,不建议使用私有属性,因为将来可能会删除或更改它们。

答案 2 :(得分:-1)

@ color / colorAccent 使用它,这是android中的默认颜色 或者您可以在color.xml中自定义颜色