テーマを設定する。

アンドロイドにはテーマという項目が存在して、テーマを適合するだけで、簡単に目的のインターフェースに近い形でアンドロイドアプリを作成できます。

テーマは次のように設定をする。

<activity android:name=".About"
 android:label="@string/about_title"
 android:theme="@android:style/Theme.WallpaperSettings">
</activity>

簡単に設定ができる。

 

▼sample

 

何もしてない状態

・通常の黒い画面

 

Theme.Black.NoTitleBar.Fullscreen

上のバーとタイトルバーを消してフルスクリーン

<style name="Theme.NoTitleBar.Fullscreen">
 <item name="android:windowFullscreen">true</item>
 <item name="android:windowContentOverlay">@null</item>
</style>

normal_full

 

Theme_Dialog

ダイアログのような周りはアルファのかかったレイヤー

<style name="Theme.Dialog">
 <item name="android:windowFrame">@null</item>
 <item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item>
 <item name="android:windowBackground">@android:drawable/panel_background</item>
 <item name="android:windowIsFloating">true</item>
 <item name="android:windowContentOverlay">@null</item>
 <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
 <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
 <item name="android:colorBackgroundCacheHint">@null</item>
 <item name="textAppearance">@android:style/TextAppearance</item>
 <item name="textAppearanceInverse">@android:style/TextAppearance.Inverse</item>
 <item name="textColorPrimary">@android:color/primary_text_dark</item>
 <item name="textColorSecondary">@android:color/secondary_text_dark</item>
 <item name="textColorTertiary">@android:color/tertiary_text_dark</item>
 <item name="textColorPrimaryInverse">@android:color/primary_text_light</item>
 <item name="textColorSecondaryInverse">@android:color/secondary_text_light</item>
 <item name="textColorTertiaryInverse">@android:color/tertiary_text_light</item>
 <item name="textColorPrimaryDisableOnly">@android:color/primary_text_dark_disable_only</item>
 <item name="textColorPrimaryInverseDisableOnly">@android:color/primary_text_light_disable_only</item>
 <item name="textColorPrimaryNoDisable">@android:color/primary_text_dark_nodisable</item>
 <item name="textColorSecondaryNoDisable">@android:color/secondary_text_dark_nodisable</item>
 <item name="textColorPrimaryInverseNoDisable">@android:color/primary_text_light_nodisable</item>
 <item name="textColorSecondaryInverseNoDisable">@android:color/secondary_text_light_nodisable</item>
 <item name="textColorHint">@android:color/hint_foreground_dark</item>
 <item name="textColorHintInverse">@android:color/hint_foreground_light</item>
 <item name="textColorSearchUrl">@android:color/search_url_text</item>
 <item name="textAppearanceLarge">@android:style/TextAppearance.Large</item>
 <item name="textAppearanceMedium">@android:style/TextAppearance.Medium</item>
 <item name="textAppearanceSmall">@android:style/TextAppearance.Small</item>
 <item name="textAppearanceLargeInverse">@android:style/TextAppearance.Large.Inverse</item>
 <item name="textAppearanceMediumInverse">@android:style/TextAppearance.Medium.Inverse</item>
 <item name="textAppearanceSmallInverse">@android:style/TextAppearance.Small.Inverse</item>
</style>

dialog

 

Theme_Panel

ダイアログと言うより上から薄いレイヤーを重ねる形式

<style name="Theme.Panel">
 <item name="android:windowBackground">@android:color/transparent</item>
 <item name="android:colorBackgroundCacheHint">@null</item>
 <item name="android:windowFrame">@null</item>
 <item name="android:windowContentOverlay">@null</item>
 <item name="android:windowIsFloating">true</item>
 <item name="android:backgroundDimEnabled">false</item>
 <item name="android:windowIsTranslucent">true</item>
 <item name="android:windowNoTitle">true</item>
</style>

panel

 

Theme_Translucent

透けてホームの画面が見える形

<style name="Theme.Translucent">
 <item name="android:windowBackground">@android:color/transparent</item>
 <item name="android:colorBackgroundCacheHint">@null</item>
 <item name="android:windowIsTranslucent">true</item>
 <item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>

trans

 

Theme_Wallpaper

壁紙が見えるけど、メニューなどは隠れている状態

<style name="Theme.Wallpaper">
 <item name="android:windowBackground">@android:color/transparent</item>
 <item name="android:colorBackgroundCacheHint">@null</item>
 <item name="android:windowShowWallpaper">true</item>
</style>

trans2

尚、各ソースに示したstyleのxmlに関しては

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <!-- ここにいれると使える。 -->
</resources>

として利用ができるが、上記のものに関してはデフォルトで中に入っているので作る必要はない。

 

上記以外にもデフォルトで設定ができるようにはなっているが、自分で新しい設定を作成をして汎用性を高くしておくとよいと思う。

テーマで設定できる事はactivity毎に設定ができる為、ページ移動などをする際にレイヤーをかぶせての移動など、(1ページ目は普通、2ページ目はフルスクリーンなどもできる。)より魅力的なインターフェイスで作成する事ができる。

参照:Applying Styles and Themes

前後の記事

前の記事:

次の記事:

関連の記事

コメント

:D ミケ猫

はじめましてミケ猫と申します。
ここに記載されているスタイルの方法で、やっと自作ホームアプリの背景にライブ壁紙を表示させることが出来ました!

1ヶ月以上悩み続けていたことだったのでもう本当に感謝です!
ありがとうございました!

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑