Androidアプリ開発メモ046:スタイルとテーマ
スタイルとテーマ
Androidではアプリやビューに統一したフォーマットを適用するためにスタイルとテーマが用意されている。
- スタイル
- ビューに個々にセットするフォーマット属性のセット。レイアウトファイルで設定する。
- テーマ
- アプリケーション全体または個々のアクティビティにセットするフォーマット属性のセット。AndroidManifest.xmlで設定する。
用意されているスタイル(一部)
TextAppearance | 文字色白。文字サイズは小と中の間。 |
TextAppearance.Inverse | 文字色黒。 |
TextAppearance.Small | 文字サイズ小。 |
TextAppearance.Mediaum | 文字サイズ中。 |
TextAppearance.Large | 文字サイズ大。 |
「○○.Inverse」というスタイルは「○○の文字色反転版」ってことか?
用意されているテーマ(一部)
Theme.Black | 背景が黒。テーマを指定しない場合と同じ? |
Theme.Light | 背景が白。 |
Theme.Dialog | ダイアログっぽくなる。 |
Theme.NoDisplay | ? |
Theme.NoTitleBar | タイトルバーなし |
Theme.Translucent | 背景が透明。タイトルバー付き。 |
Theme.Translucent.NoTitleBar | 背景が透明。タイトルバーなし。 |
Theme.Translucent.NoTitleBar.Fullscreen | 背景が透明。タイトルバーなし。ステータスバーもなし。 |
Theme.NoDisplayはどのようなテーマなのか不明。onCreate()は呼ばれているが画面の変化は一切ない。アクティビティ上にあるテキストビューやボタンも表示されない。
Theme.Translucentの場合は背景は透明だけがアクティビティは実際には存在していて、そのために後ろにある画面(ホーム画面など)は操作できないが、Theme.NoDisplayでは表示されている画面を操作できるのでアクティビティが画面上には存在していないと思われる。またバックキーを押すと、しばらくすると「<アプリケーション名>は応答していません。」というエラーのダイアログが出る。
下のスクリーンショットは"Theme.Dialog"。

独自のスタイル・テーマの指定
独自のスタイル・テーマを定義して使うこともできる。
テーマの定義は /res/values/style.xml に記述する。
以下は独自スタイル・テーマの例。
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="SpecialText" parent="@android:style/TextAppearance.Medium" > <item name="android:textSize">18sp</item> <item name="android:textColor">#FF00FF00</item> </style> <drawable name="translucent_background">#DDFF0000</drawable> <style name="Theme.TranslucentRed" parent="android:style/Theme.Translucent"> <item name="android:windowBackground">@drawable/translucent_background</item> </style> </resources>
"SpecialText"は"TextAppearance.Medium"を継承したスタイルで文字色が緑。
"Theme.TranslucentRed"は"Theme.Translucent"を継承したテーマで背景が"translucent_background"という上の行で定義してあるdrawableである。
スタイルの指定
スタイルはレイアウトファイルでビューの要素にstyle属性を追加して設定する。 #android:style属性ではない。
style="@android:style/<標準で用意されているスタイルの名前>" style="@style/<独自のスタイルの名前>"
テキストビューの文字サイズを中に設定する場合は以下のようになる。
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" style="@android:style/TextAppearance.Medium" />
テーマの指定
テーマはAndroidManifest.xmlでapplication要素、activity要素にandroid:theme属性を設定する。
application要素の属性の場合はそのアプリケーション全体にテーマがセットされる。
activity要素の属性の場合はそのアクティビティにテーマがセットされる
android:theme="@android:style/<標準で用意されているテーマの名前>" android:theme="@style/<独自のテーマの名前>"
アクティビティに対して設定する場合は以下のようになる。
<activity android:label="@string/app_name" android:name=".ThemeExample" android:theme="@android:style/Theme.Translucent" />
参考:
6.8 スタイルとテーマの適用 - ソフトウェア技術ドキュメントを勝手に翻訳
Androidアプリ全体で文字色や背景色を統一させる方法(Theme/テーマ) | mucchinのAndroid戦記
Androidメモ
[音量設定アプリ]第6回 アプリのデザイン(テーマ)を変更 | Android Techfirm Lab
« 「月刊ヒーローズ」はパチンコホールでも売ってる | Main | 今度からはTSUTAYAで借りる »
「Androidアプリ開発」カテゴリの記事
- Androidアプリ開発メモ068:Tweenアニメーション(2012.11.18)
- Android SDK tools, Revision 21 に更新(2012.11.18)
- Androidアプリ開発メモ067:NDKのサンプルを動かしてみた(2012.09.10)
- Androidアプリ開発メモ066:Android SDK tools Rev.20 で変わった事(2012.07.12)
- Androidアプリ開発メモ065:ライブフォルダ(2012.07.11)
TrackBack
TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/53366568
Listed below are links to weblogs that reference Androidアプリ開発メモ046:スタイルとテーマ:
Comments