AmbilWarna - 首选项 - 设置颜色

时间:2014-09-26 06:31:21

标签: android color-picker

这是我第一次尝试使用AmbilWarna(Android颜色选择器),所以请耐心等待。

我正在尝试使用“首选项”将颜色设置为我的textview。这就是我所做的:

将Settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >

    <PreferenceCategory android:title="@string/prefs_color_heading" />

    <yuku.ambilwarna.widget.AmbilWarnaPreference
        android:defaultValue="0xff000000"
        android:key="display_foreground_color"
        android:title="Pick a color for text"
        app:supportsAlpha="true" />

    <!--  -->

    <yuku.ambilwarna.widget.AmbilWarnaPreference
        android:defaultValue="0xfffff380"
        android:key="display_background_color"
        android:title="Pick a color for background"
        app:supportsAlpha="true" />

</PreferenceScreen>

SettingsFragment:

public class SettingsFragment extends PreferenceFragment implements
        OnPreferenceClickListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);

        addPreferencesFromResource(R.xml.settings);

        findPreference(Const.Prefs.DISPLAY_FOREGROUND_COLOR)
                .setOnPreferenceClickListener(this);
        findPreference(Const.Prefs.DISPLAY_BACKGROUND_COLOR)
                .setOnPreferenceClickListener(this);

    }

    @Override
    public boolean onPreferenceClick(Preference preference) {
        if (preference.getKey().equals(Const.Prefs.DISPLAY_FOREGROUND_COLOR)) {
            return true;
        } else if (preference.getKey().equals(
                Const.Prefs.DISPLAY_BACKGROUND_COLOR)) {
            return true;
        }

        return false;
    }
}

当我点击首选项时,例如&#34;为文本选择一种颜色&#34;,我会得到一个颜色选择器对话框来选择颜色。我选择颜色,颜色作为&#34; int&#34;返回。现在我的问题是,我不明白如何将这个返回的int值设置为我的textview。

这是从Log返回的int:

09-26 11:50:14.440: D/AVCP(24815): Foreground Color: -5954010

如何将此int设置为我的textview?

1 个答案:

答案 0 :(得分:0)

您可以直接将其设置为textview ...

int foreground_color = prefs.getInt(
                Const.Prefs.DISPLAY_FOREGROUND_COLOR, 0);

tvExpression = (TextView) findViewById(R.id.textView_expression);
        tvExpression.setTextColor(foreground_color);