ActionBarSherlock library を使用して、ホームアイコンにカスタムアイコンを設定しようとしています。カスタムテーマでabHomeLayout
属性を使用してカスタムレイアウトを設定しようとしました。しかし、それは私にはうまくいきませんでした。それを設定する唯一の方法は、カスタムドローブルにabIcon
属性を設定することですが、このドローアブルに水平パディングを設定できません。これの例はありますか、またはabHomeLayout
属性の問題の可能性がある場所はありますか?
これは私の状況で機能し、アクションバーのデフォルトのic_launcherアイコンを私のカスタムアイコンに置き換えます。
あなたのonCreateでこれを行います:
getSupportActionBar().setIcon(R.drawable.audio_shortcut);
またはマニフェストでロゴを設定できます:
<activity>
Android:logo="@drawable/my_custom_logo"
...
</activity>
これもうまくいきます:
<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>
デバイス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" />