web-dev-qa-db-ja.com

AppCompatアクションバーのスタイル

現在、ActionbarSherlockの代わりにAppCompatを使用しようとしています。 Android 4台以上のデバイスでは、通常のアクションバーとホロのテーマが使用されているため、問題は発生しません。

ICS Actionbar

より低いAndroidバージョンでは、ただし、Theme.AppCompat.Lightを使用すると、この奇妙な外観が発生します。

Standard AppCompat Actionbar

アクションバーは白で、下に青い線があります。

Android Action Bar Style Generator from Android Asset Studioを使用して、透明なものではなく、固体のアクションバーを持つカスタムテーマを生成することで、これを修正できました。

AppCompat with custom drawables from Style Generator

ActionbarSherlockを使用したときに取得したActionbarと比較すると、まだ見苦しいものです。

ActionbarSherlock

AppCompatアクションバーは、それ自体とアクティビティのコンテンツとの間にこの非常に鋭い黒い線がありますが、ICSのストックアクションバーまたはActionbarSherlockのアクションバーは、アクションバーからレイアウトへのソフトな遷移を持っています。

Android 4+のように実際に見えるようにアクションバーをスタイルするにはどうすればよいですか?

12

あなたが背景に置きたいイメージであなた自身のスタイルを作成しなければなりません。 style.xmlで、次のようなものを作成する必要があります。

values/styles.xml

    <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item>
    </style>

    <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="background">@drawable/your_background_image</item>
    </style>

values-v14/styles.xml

    <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="Android:actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item>
    </style>

    <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="Android:background">@drawable/your_background_image</item>
    </style>

そして、あなたはこの9パッチ画像を使うことができます:

9-patch image

17
hardartcore

私はこのコードを使用します:

<resources>

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/ActionBarTheme</item>
</style>

<style name="ActionBarTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="background">@color/red_action_bar</item>
</style>

</resources>

このコードがお役に立てば幸いです。

3
Cabezas

アクションバーのテーマを上書きする必要があります

1
ishan jain

カスタムアイコンと色をAppCompatActivityで表示するには、次のコードを貼り付けます。

values/styles.xml

<resources>

 <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat">
    <item name="actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item>
    <item name="icon">@drawable/ic_launcher</item>
</style>

<style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="background">@color/white</item>
</style>

values-v14/styles.xml

<resources>

<style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
    <item name="Android:actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item>
       <item name="icon">@drawable/ic_launcher</item>
</style>

<style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="Android:background">@color/app_titile_bar_color</item>
</style>

@ drawable/your_pic.pngからカスタムの背景画像を使用することもできます

アプリのアイコンとテキストを表示するには、これもアクティビティに貼り付けます。

        // set action Bar icon & Text
    ActionBar mActionBar = getSupportActionBar();
    mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE
            | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
0
Shihab Uddin