web-dev-qa-db-ja.com

ActionBarSherlock-仕切り付きのアクションバーのカスタム背景

ActionBarsherlock を実装しています。アクションバーの背景を変更したいと思います。

プロパティをオーバーライドしますが、青い仕切りは消えます。青い仕切りでカスタム背景を使用するにはどうすればよいですか?

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    <item name="Android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
</style>

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="Android:background">#ff3e3f3d</item>
    <item name="background">#ff3e3f3d</item>
</style>
31
ikarius

(私のような)9パッチ画像をいじるのが好きでない人のために、XMLドローアブルを使用して、アクションバーの下部にある仕切りを取得できます。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <!-- Bottom Line -->
    <item>
        <shape Android:shape="rectangle">
            <solid Android:color="@color/action_bar_line_color" />
        </shape>
    </item>

    <!-- Color of your action bar -->
    <item Android:bottom="2dip">
        <shape Android:shape="rectangle">
            <solid Android:color="@color/action_bar_color" />
        </shape>
    </item>
</layer-list>

これをdrawable/action_bar_background.xmlとして保存し、テーマに適用します。

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="Android:background">@drawable/action_bar_background</item>
    <item name="background">@drawable/action_bar_background</item>
</style>
76
DanielGrech

http://jgilfelt.github.io/Android-actionbarstylegenerator/

このプロジェクトを使用して、必要なActionBarスタイルを生成できます。

17
kzotin

青い仕切りは、デフォルトでは背景です。これは9パッチのドローアブルであり、ラインが高さに関係なく常にアクションバーの下部に表示されるようにします。

あなたの状況では、デフォルトの背景をコピーします.pngs from Android次に、9パッチの展開可能なセクションがターゲットの背景色になるように変更します。これにより、アクションバーが目的の色で塗りつぶされ、底。

7
Jake Wharton

DanielGrechによって提供された回答の最新情報。アクションバーの下部で独自のカスタムグラフィックを使用することもできます。このような:

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <!-- Bottom Line with custom graphic instead of a solid color-->
    <item Android:drawable="@drawable/bar">
          <shape Android:shape="rectangle"/>
    </item>

    <!-- Color of your action bar -->
    <item Android:bottom="2dip">
        <shape Android:shape="rectangle">
            <solid Android:color="@color/action_bar_color" />
        </shape>
    </item>
</layer-list>
3
Jordy