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

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Xamarin.Android Theme 記述方法について

Xamarin.Android Xamarin

こんにちは。エクセルソフトの田淵です。

Android の Activity に Style を参照させたり、直接 Theme を指定したり、良く書き方を忘れて検索するのでメモとして残しておきます。

Theme の種類

Theme.Holo Theme.Holo.NoActionBar Theme.Holo.Light.DarkActionBar Theme.Holo.Light.NoActionBar.FullScreen Theme.DeviceDefault

あたりを覚えておけば大丈夫そうです。DeviceDefault は API 14 以上みたいです。

ここは通常の Android 開発と同じですので、詳しくは R.style | Android DevelopersStyling the Action Bar | Android Developers を参照してください。

Styles.xml (@style/xxx) で指定する方法

例えば以下のように指定します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:windowBackground">@drawable/bg</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#4AA3DF</item>
    </style>
</resources>

これで Holo Light を使用してウィンドウの背景を drawable/bg.png に、ActionBar の色を #4AA3DF に設定しています。

Activity に Style を指定する場合

スタイルを Activity.cs に次のように設定します。

[Activity(Label = "AndroidApp", MainLauncher = true, Theme = "@style/MyTheme")]

全体に指定する場合

AndroidManifest.xml に次のように設定します。

<application android:label="AndroidApp" android:theme="@style/MyTheme">

直接指定する方法

カスタマイズの必要もなく、例えば NoActionBar だけ指定したい場合などは次のように直接指定しても大丈夫なようです。

[Activity(Label = "AndroidApp", MainLauncher = true, Theme = "@android:style/Theme.Holo.Light.NoActionBar")]
<application android:label="Android" android:theme="@android:style/Theme.Holo.Light.NoActionBar">

以上です。