Как сопоставить цвет текста с цветовой шкалой уведомлений? - PullRequest
3 голосов
/ 02 ноября 2011

Мое приложение использует белый цвет шрифта, который подходит для моего телефона с черной темой.Но на другом телефоне цвет панели уведомлений и цвет фона меню белый или светлый.Есть ли способ (помимо предоставления пользователю возможности выбрать цвет в настройках приложения), чтобы узнать, какой цвет или темная / светлая тема использовать телефон и соответствовать цвету шрифта?

Ответы [ 2 ]

4 голосов
/ 02 ноября 2011

Когда вы используете Уведомление и устанавливаете текст с помощью встроенных средств, следующая строка создает макет:

RemoteViews contentView = new RemoteViews(context.getPackageName(),
        com.android.internal.R.layout.status_bar_latest_event_content);

Указанный макет содержит следующее представление, отвечающее за просмотр текста уведомления:

<TextView android:id="@+id/text"
    android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:fadingEdge="horizontal"
    android:paddingLeft="4dp"
    />

Таким образом, вывод заключается в том, что необходимым стилем является TextAppearance.StatusBar.EventContent, определение которого выглядит следующим образом:

<style name="TextAppearance.StatusBar.EventContent">
    <item name="android:textColor">#ff6b6b6b</item>
</style>

Здесь следует отметить, что этот стиль на самом деле не ссылается ни на один из встроенных цветов, поэтому самый безопасный способ - применить этот стиль вместо какого-то встроенного цвета.

0 голосов
/ 22 ноября 2016

Я использую Android: textAppearance = "@ style / TextAppearance.AppCompat.Notification.Title" работа для меня

...