Пользовательский значок дома в действии Бар Шерлок

Я пытаюсь установить пользовательский значок для домашнего значка с помощью библиотеки ActionBarSherlock . Я попытался установить пользовательский макет, используя атрибут abHomeLayout в моей настраиваемой теме. Но это не сработало для меня. Единственный способ, как установить его, – установить атрибут abIcon для моего пользовательского метода drawble, но я не могу установить горизонтальное дополнение для этого drawable. Есть ли какой-нибудь пример для этого или где может быть проблема с атрибутом abHomeLayout ?

Solutions Collecting From Web of "Пользовательский значок дома в действии Бар Шерлок"

Это работает для моей ситуации, оно заменяет значок 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> 

Ссылка: Как изменить иконку ActionBar «Главная», чтобы быть чем-то отличным от значка приложения?

У меня была аналогичная проблема с неправильным заполнением домашней иконки на устройствах api <11 (т. abHomeLayout Не полноценной панели действий платформы), а стиль abHomeLayout работал только api> 11

Мое решение состояло в том, чтобы скопировать макет abs__action_bar_home.xml из АБС в дочерний проект и вручную добавить отступы в 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" /> 

Определите собственный стиль, например:

 <resources> <style name="Theme.OwnTheme" parent="@style/Theme.Sherlock"> <item name="abBackground">#476dd5</item> <item name="abHeight">30dip</item> </style> </resources> 

Я думаю, здесь вы можете использовать abHomeLayout . Установите этот стиль для своей деятельности следующим образом:

 <activity android:name=".MainActivity" android:theme="@style/Theme.OwnTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

В MainActivity вы можете использовать функции getSupportActionBar () ….