这个问题应该很简单,但是我没有找到答案。我有一个带有可选重音的应用程序,并且我试图添加一个使用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设备上的设置->自定义中选择了红色的口音。我想在我的应用中得到这个红色的口音
答案 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的色彩强调:
答案 1 :(得分:1)
好的。我做了一些深入的研究和反复试验。之后,我发现可以访问私有财产@*android:color/accent_device_default_light
。 但只有当您将活动的父类从AppCompatActivity
更改为Activity
时才有可能,因为AppCompat无法使用此私有属性设置工具栏。此外,不建议使用私有属性,因为将来可能会删除或更改它们。
答案 2 :(得分:-1)
@ color / colorAccent 使用它,这是android中的默认颜色 或者您可以在color.xml中自定义颜色