web-dev-qa-db-ja.com

アクションバーシャーロックのカスタムホームアイコン

ActionBarSherlock library を使用して、ホームアイコンにカスタムアイコンを設定しようとしています。カスタムテーマでabHomeLayout属性を使用してカスタムレイアウトを設定しようとしました。しかし、それは私にはうまくいきませんでした。それを設定する唯一の方法は、カスタムドローブルにabIcon属性を設定することですが、このドローアブルに水平パディングを設定できません。これの例はありますか、またはabHomeLayout属性の問題の可能性がある場所はありますか?

30
sealskej

これは私の状況で機能し、アクションバーのデフォルトのic_launcherアイコンを私のカスタムアイコンに置き換えます。

あなたのonCreateでこれを行います:

getSupportActionBar().setIcon(R.drawable.audio_shortcut);

またはマニフェストでロゴを設定できます:

<activity>
    Android:logo="@drawable/my_custom_logo"
    ...
</activity>
40
Matthew

これもうまくいきます:

<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="Android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="icon">@drawable/my_custom_logo</item>
    <item name="Android:icon">@drawable/my_custom_logo</item>
</style>

参照: ActionBarの「ホーム」アイコンをアプリアイコン以外のものに変更する方法

5
Brais Gabin

デバイスapi <11(つまり、本格的なプラットフォームアクションバーではない)でのホームアイコンの誤ったパディングに関する同様の問題があり、abHomeLayoutスタイルはapi> 11のみで機能しました

私の解決策は、abs__action_bar_home.xmlレイアウトをABSから子プロジェクトにコピーし、abs__home imageviewに手動でパディングを追加することでした

<ImageView
    Android:id="@+id/abs__home"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center"
    Android:paddingTop="@dimen/action_bar_home_icon_top_bottom_padding"
    Android:paddingBottom="@dimen/action_bar_home_icon_top_bottom_padding"
    Android:paddingLeft="@dimen/action_bar_home_icon_left_right_padding"
    Android:paddingRight="@dimen/action_bar_home_icon_left_right_padding"
    Android:scaleType="centerInside" />
0
scottyab