Получить Android системный акцент цвета (Android 10 Системный акцент цвета) - PullRequest
2 голосов
/ 12 октября 2019

Этот вопрос должен быть простым, но я не нашел ответа. У меня есть приложение с выбираемым акцентом, и я пытаюсь добавить опцию, чтобы использовать акцент системы Android (такие приложения, как Lawnchair, есть такая опция). В стиле системного акцента я пытался получить этот акцент всеми возможными способами:

?android:colorAccent

?android:attr/colorAccent

?attr/colorAccent

И это стиль:

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

Кажется, что ничего не работает, и приложение вылетает, но я уверен, что это возможно. Выбор акцента, когда я использую нормальные цвета, работает нормально. Где я не прав?

РЕДАКТИРОВАТЬ: Просто чтобы прояснить, я пытаюсь получить системный акцент, то есть общесистемный цвет, используемый в настройках, панели уведомлений и так далее. Этот цвет теперь можно выбрать в Android 10 и раньше можно было выбрать в ОС, например, Oxygen. Допустим, я выбрал красный акцент в настройках-> настройка на моем устройстве Android 10 . Я хочу получить этот красный акцент в моем приложении

Ответы [ 3 ]

5 голосов
/ 12 октября 2019

Вы можете получить это программно:

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 голос
/ 14 октября 2019

Хорошо. Я провел несколько интенсивных исследований и проб и ошибок. После этого я узнал, что могу получить доступ к частной собственности @*android:color/accent_device_default_light. НО это просто возможно, если вы измените родительский класс для действия с AppCompatActivity на Activity, потому что AppCompat не может настроить панель инструментов с этим частным свойством. Кроме того, не рекомендуется использовать частные свойства, поскольку они могут быть удалены или изменены в будущем.

0 голосов
/ 12 октября 2019

@ color / colorAccent используйте это, это цвет по умолчанию в Android или вы можете настроить свой цвет в color.xml

...