読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

設定画面のテキストのサイズ・カラーを変えてみる

Android


Androidの設定画面(PreferenceActivity)でtitleとsummaryのテキストのサイズ・カラーを簡単に変えれないかやってみました。


まずは通常通りにやります。

xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
	<PreferenceCategory android:title="カテゴリー">
		<CheckBoxPreference
			android:key="key1"
			android:title="Title1"
			android:summary="Summary1"/>
		<CheckBoxPreference
			android:key="key2"
			android:title="Title2"
			android:summary="Summary2"/>
	</PreferenceCategory>
</PreferenceScreen>

Activity

public class SettingActivity extends PreferenceActivity {
	@Override  
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.pref);
	}
}

このようにすると普通に下のようになります。
f:id:STAR_ZERO:20110329200744p:image


今度はこの設定画面のテキストのサイズ・カラーを変更したいと思います。
SpannableStringというのを使用して次のようにします。

public class SettingActivity extends PreferenceActivity {
	@Override  
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.pref);

		// ここから追加
		CheckBoxPreference preference = (CheckBoxPreference) findPreference("key1");
		SpannableString title = new SpannableString("Title1");
		title.setSpan(new RelativeSizeSpan(0.5f), 0, title.length(), 0);
		preference.setTitle(title);

		SpannableString summary = new SpannableString("Summary1");
		summary.setSpan(new ForegroundColorSpan(Color.RED), 0, summary.length(), 0);
		preference.setSummary(summary);
	}
}


これを実行すると次のようになります。
f:id:STAR_ZERO:20110329201526p:image


色々と調べたのですがこの方法が一番簡単そうでした。サイズ・カラー以外にも下線とかも引けます。
画面の制御とかは通常通りなのでandroid:layoutよりかは簡単だと思いました。