在自定义首选项中匹配默认颜色

时间:2011-12-30 01:10:18

标签: android xml colors preference

我有一个自定义首选项,基本上是一个滑块。 首选项滑块的自定义XML可用于设置文本颜色,但我需要将文本颜色与设备使用的默认颜色匹配。标题颜色似乎很好,只使用默认值(与另一个CheckBoxPreference标题相同,或者看起来如此)。摘要颜色也使用默认颜色(与标题相同),但我希望它与CheckBoxPreference的Summary文本的默认颜色相匹配,CheckBoxPreference在XML正上方定义。

我可以从CheckBoxPreference获取摘要文本的颜色,只需更改自定义首选项的摘要文本颜色以匹配CheckBoxPreference摘要颜色,或者是否可以使用全局(R.attr.xxxxxxxx等)在所有设备上都存在?

例如,我有一个不指定标题或摘要颜色的复选框首选项 - 因此,它使用默认颜色方案(但此颜色方案看起来,如标题匹配,但摘要文本在自定义首选项(来自xml)与标题颜色相同,但不是默认的摘要颜色作为默认首选项))。

我的自定义滑块(包含标题和摘要字段)需要将这两个字段的默认操作系统颜色与这些条目的设备默认颜色方案(标题和摘要)相匹配。

  1. 如果没有指定颜色,如何获取为复选框首选项设置的默认设备颜色?

  2. 如何将该颜色分配给我的自定义首选项,该首选项具有自定义自定义首选项视图的xml文件。

  3. 希望这是完全合理的,如果不是,我会详细说明。

    自定义首选项的首选项定义(在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 个答案:

答案 0 :(得分:2)

我发现了这些:android:textAppearance="?android:attr/textAppearanceLarge"android:textAppearance="?android:attr/textAppearanceSmall"似乎可以解决问题。

答案 1 :(得分:0)

Android preferences summary default color?

中给出了一个复杂的解决方案

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我遇到了同样的问题,我用onCreateView <{1}}

seekBarPreference.java方法解决了这些问题
TextView summaryText = new TextView(getContext());
summaryText.setText(getSummary());
summaryText.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);