Соответствие цвета по умолчанию в пользовательских настройках

У меня есть пользовательское предпочтение, которое в основном является ползунком. Пользовательский XML для ползунка предпочтений можно использовать для установки цвета текста, но мне нужно СООТВЕТСТВОВАТЬ цвету текста по умолчанию, который использует устройство. Цвет заголовка выглядит нормально, просто используется значение по умолчанию (такое же, как у другого заголовка CheckBoxPreference, или так оно выглядит). Цвет сводки также использует цвет по умолчанию (такой же, как и заголовок), но я хочу, чтобы он соответствовал цвету по умолчанию текста сводки CheckBoxPreference, который определен прямо над ним в XML.

Могу ли я получить цвет текста сводки из CheckBoxPreference и просто изменить цвет текста сводки пользовательского предпочтения, чтобы он соответствовал цвету сводки CheckBoxPreference, или есть глобальный (R.attr.xxxxxxxx независимо от того), который я могу использовать, который существует на все устройства?

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

Мой пользовательский ползунок (который имеет поля заголовка и сводки) должен соответствовать цветам ОС по умолчанию для этих двух полей цветовой схеме устройства по умолчанию для этих записей (заголовок и сводка).

  1. Как получить цвет устройства по умолчанию, установленный для флажка, если цвет не указан?

  2. Как назначить этот цвет моему пользовательскому предпочтению, у которого есть собственный xml-файл, определяющий представление пользовательского предпочтения.

Надеюсь, это имеет смысл, если нет, я уточню немного больше.

определение предпочтения для пользовательского предпочтения (которое далее определяется в его xml):

<com.xxx.sbp.SeekBarPref
    android:id="@+id/xmlpreference_seekbar"
    android:key="preference_seekbar"
    android:title="Seek Bar Pref"
    android:summary="Choose seconds"
    android:defaultValue="20"
    android:max="300"
    sbp:min="10"
    sbp:interval="10"
    sbp:intervaldivide="10"
    sbp:unitsLeft=""
    sbp:unitsRight="s" />   

person JS.    schedule 30.12.2011    source источник


Ответы (4)


Я нашел это: android:textAppearance="?android:attr/textAppearanceLarge" и android:textAppearance="?android:attr/textAppearanceSmall", похоже, помогают.

person Community    schedule 31.12.2011
comment
Я попробую их, предполагая, что они включают цвет, а не только внешний вид текста. Отвечу, когда узнаю. Спасибо. - person JS.; 01.01.2012
comment
Это не решает проблему, ничего не меняет для цвета текста сводного атрибута. - person JS.; 03.01.2012

Сложное решение приведено в разделе цвет сводки настроек Android по умолчанию?

Я согласен с респондентами выше в том, что ни одна из настроек textAppearance не гарантирует совпадения цветов.

person Joe Bowbeer    schedule 14.03.2012

Цвет по умолчанию для сводного текста предпочтений — #DACC45. Я сделал это, сделав снимок экрана и запросив цветные пиксели с помощью редактора изображений.

person Bob    schedule 28.08.2012

У меня была такая же проблема, и я решил ее с помощью этих строк в onCreateView методе seekBarPreference.java

TextView summaryText = new TextView(getContext());
summaryText.setText(getSummary());
summaryText.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
person JMCambil    schedule 06.12.2014