mucchinのAndroid戦記mucchinのAndroid戦記HOMEリソース関連Androidアプリ全体で文字色や背景色を統一させる方法(Theme/テーマ)Androidアプリ全体で、文字色や背景色を統一させる方法は?Androidには、テーマというものを定義する事ができます。スタイルをご存知でしょうか。ご存知ない方は、以下の記事を参照してください。Androidアプリで使う文字列のスタイルを統一する方法テーマとは、このスタイルをAndroidアプリ全体の初期値として使用する方法です。Androidアプリのテーマの使用方法テーマの定義方法は、基本的にスタイルと同じです。Androidアプリで使う文字列のスタイルを統一する方法を参照してください。この方法でXMLにスタイルを定義するまでは、全く同じです。スタイルは、各ViewのStyle属性で、定義したスタイルを参照させていましたが、Theme(テーマ)として参照させる場合は、以下のようにします。Eclipseを使った方法を説明します。Editorで開きます。通常は関連付けられているので、ダブルクリックでOKです。Applicationタブを開きます。以下のような画面になりますね。赤枠で囲っているところを見てください。「Theme」とあります。ここのBrowseボタンを押すと、以下の画面が表示されます。ここには、定義しているスタイルが一覧表示されますので、テーマとして使いたいスタイルを選択すればOKです。AndroidManifest.xmlへ以下の太字部分が追記されます。android:theme=”@style/TextStyle”>Eclipseを使わずに、この太字部分を手書きしてもOKです。スポンサーリンクなお、Androidアプリで使う文字列のスタイルを統一する方法では、文字色、文字サイズ、文字スタイルについて説明していましたので、それ以外にテーマとして使うスタイルによく使うプロパティをいくつか紹介します。android:windowBackground:背景画像を指定します。android:windowTitleStyle:アプリケーションのタイトル文字のスタイルを指定します。android:textColorPrimary:文字色(プライマリー)android:textColorSecondary:文字色(セカンダリー)上記が、基本的によく使うプロパティだと思います。他にもたくさんあるみたいです。SDKのdocsフォルダのreference/android/R.attr.htmlに書いているプロパティを使えるんだと思います。わかりにくいですが、このR.attrを読んでみたら、便利そう、あるいは面白そうなプロパティがいくつかありました。作成するAndroidアプリでは、上記のように背景色や背景画像、文字色などを定義したテーマとして使うためのスタイルを複数用意しておき、ユーザの好みに合わせて見た目を変えれるような機能でもつけてあげると、見栄えがよくなるのではないかと思うので、使えそうなら是非テーマを活用してみてください。ちなみに補足ですが、textColorPrimaryは、私が知っている方法では、以下のような使いみちがあります。・複数のテーマを定義しておき、各テーマのスタイルにtextColorPrimaryを設定しておく。・テーマとは別に、例えばTextView用の文字のスタイルを定義したスタイルにて、android:textColor属性に、「?android:textColorPrimary」と設定しておく。しておくと、「?」でandroid:textColorPrimaryをつけると、「今のテーマのtextColorPrimaryを見ますよー」という意味になり、ユーザが好きに選んだテーマによって、TextViewの文字色も変える事ができます。説明がわかりにくいかもしれませんね。(公開されません)URL上に表示された文字を入力してください。