現在、ActionbarSherlockの代わりにAppCompatを使用しようとしています。 Android 4台以上のデバイスでは、通常のアクションバーとホロのテーマが使用されているため、問題は発生しません。
より低いAndroidバージョンでは、ただし、Theme.AppCompat.Lightを使用すると、この奇妙な外観が発生します。
アクションバーは白で、下に青い線があります。
Android Action Bar Style Generator from Android Asset Studioを使用して、透明なものではなく、固体のアクションバーを持つカスタムテーマを生成することで、これを修正できました。
ActionbarSherlockを使用したときに取得したActionbarと比較すると、まだ見苦しいものです。
AppCompatアクションバーは、それ自体とアクティビティのコンテンツとの間にこの非常に鋭い黒い線がありますが、ICSのストックアクションバーまたはActionbarSherlockのアクションバーは、アクションバーからレイアウトへのソフトな遷移を持っています。
Android 4+のように実際に見えるようにアクションバーをスタイルするにはどうすればよいですか?
あなたが背景に置きたいイメージであなた自身のスタイルを作成しなければなりません。 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パッチ画像を使うことができます:
私はこのコードを使用します:
<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>
このコードがお役に立てば幸いです。
アクションバーのテーマを上書きする必要があります
カスタムアイコンと色を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);