25

私の設定画面では、クリックするとカラーピッカーダイアログが開くという設定があります。私がやりたいのは、ユーザーが色を選択したときに、設定のテキストの要約がその色で表示されることです。

このようにサマリーを設定してCurrently <font color="#ff0000">this color</font>、その色で表示できることはわかっています。問題は、私が戻ってきた色がアンドロイドのint色であることです。

red()、green()、blue() メソッドを使用してから、それらを Hex に変換し、それらを文字列に結合して、要約テキストに新しい値を設定することができましたString colorString = String.format("#%02x%02x%02x",Color.red( defaultColor ), Color.green( defaultColor ), Color.blue( defaultColor ));。これを行うより簡単な方法です。

ありがとうございます。

ショーン

4

5 に答える 5

36

私がやったことは、スパンナブルを使用することでした。これは色を整数として受け取ります。

Spannable summary = new SpannableString("Currently This Color");
summary.setSpan(new ForegroundColorSpan(color), 0, summary.length(), 0);
preference.setSummary(summary);
于 2010-10-28T20:47:47.960 に答える
5

テキストのスタイルを設定するには、Html.fromHtml を使用します。

mPodFolderPref.setTitle(Html.fromHtml("<font color='red'>" +  mPodFolderPref.getTitle() + "</font>"));
mPodFolderPref.setSummary(Html.fromHtml("<font color='red'>" +  mPodFolderPref.getSummary() + "</font>"));

Html.fromHtml は多くのことを行うことができます。

于 2014-03-13T22:12:54.403 に答える
2

少し遅れましたが、これらの自己完結型のメソッドを作成すると便利でした。

private void setColorPreferencesTitle(EditTextPreference textPref, int color) {
    CharSequence cs     = (CharSequence) textPref.getTitle();
    String plainTitle   = cs.subSequence(0, cs.length()).toString();
    Spannable coloredTitle = new SpannableString (plainTitle);
    coloredTitle.setSpan( new ForegroundColorSpan(color), 0, coloredTitle.length(), 0 );
    textPref.setTitle(coloredTitle);
}

private void resetColorPreferencesTitle(EditTextPreference textPref) {
    CharSequence cs     = (CharSequence) textPref.getTitle();
    String plainTitle   = cs.subSequence(0, cs.length()).toString();
    textPref.setTitle(plainTitle);
}
于 2012-03-14T15:20:03.000 に答える
-1

こんにちは、Html.fromHtml()を使用して好みの色を変更できます。

例:private String title = "" +"SMS送信制限を設定する"+"";

そして、このようなAndroidアプリケーションからこの文字列を設定します。

CheckBoxPreference _test =(CheckBoxPreference)findPreference( "text"); _test .setTitle(Html.fromHtml(title));

アンドロイドのhtmlビューについてはこのリンクをたどってください: http ://www.androidpeople.com/tag/html-tags/

ありがとう

于 2010-10-28T05:43:01.750 に答える