0

我有一个自定义偏好,基本上是一个滑块。首选项滑块的自定义 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" />   
4

4 回答 4

2

我找到了这些:android:textAppearance="?android:attr/textAppearanceLarge"并且android:textAppearance="?android:attr/textAppearanceSmall"似乎可以解决问题。

于 2011-12-31T06:37:45.540 回答
0

首选项摘要文本的默认颜色似乎是#DACC45。我这样做的方法是拍摄屏幕快照并使用图像编辑器查询彩色像素。

于 2012-08-28T15:34:10.040 回答
0

Android首选项摘要默认颜色中给出了一个复杂的解决方案?

我同意上述受访者的观点,即 textAppearance 设置都不能保证颜色匹配。

于 2012-03-14T03:26:19.610 回答
0

我有同样的问题,我已经用这些onCreateView方法解决了seekBarPreference.java

TextView summaryText = new TextView(getContext());
summaryText.setText(getSummary());
summaryText.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
于 2014-12-06T18:50:42.317 回答