Определить собственный логотип для ActionBar (отличается от логотипа) в XML? - PullRequest
23 голосов
/ 04 января 2012

Я хочу создать файл Actionbar_style.xml для моего приложения, и я хотел бы использовать логотип, отличный от логотипа / значка моего приложения.

Как изменить его программно, понятно: Изменить логотипкоторый появляется в Android ActionBar программно Но вот так мне нужно было бы кодировать это в каждом действии.

Есть ли тег xml для определения собственного Actionbarlogo в xml уже?

мои пользовательские стили.xml

<style name="CustomActionBar0" parent="android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/action_bg0</item>
</style>

android styles.xml, похоже, не имеет его ...

<style name="Widget.ActionBar">
    <item name="android:background">@android:drawable/action_bar_background</item>
    <item name="android:displayOptions">useLogo|showHome|showTitle</item>
    <item name="android:divider">@android:drawable/action_bar_divider</item>
    <item name="android:height">?android:attr/actionBarSize</item>
    <item name="android:paddingLeft">0dip</item>
    <item name="android:paddingTop">0dip</item>
    <item name="android:paddingRight">0dip</item>
    <item name="android:paddingBottom">0dip</item>
    <item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Title</item>
    <item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Subtitle</item>
    <item name="android:progressBarStyle">@android:style/Widget.ProgressBar.Horizontal</item>
    <item name="android:indeterminateProgressStyle">@android:style/Widget.ProgressBar.Small</item>
    <item name="android:homeLayout">@android:layout/action_bar_home</item>
</style>

Ответы [ 4 ]

36 голосов
/ 01 августа 2012

Просто установите значение для андроида: атрибут icon

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>

<style name="AppTheme.ActionBarStyle" parent="android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@drawable/actionbar_background</item>
        <item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
        <item name="android:icon">@drawable/ic_home</item>
        <item name="android:indeterminateProgressStyle">@style/IndeterminateProgress</item>
</style>
2 голосов
/ 04 января 2012

Вы не вводите логотип в свой стиль XML, вы просто используете android:logo в манифесте, а затем setDisplayUseLogoEnabled(), чтобы установить его в ActionBar.Вот проект от Google, который показывает вам, как переключаться между ними.http://code.google.com/p/styled-action-bar/

1 голос
/ 30 июля 2012

Похоже, вам нужно использовать пользовательский макет для панели действий, чтобы вы могли определить, что вы хотите для изображения логотипа.

Панель действий / стиль ActionbarSherlock

    <style name="ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
  <item name="displayOptions">showCustom</item>
  <item name="android:displayOptions">showCustom</item>

   <item name="customNavigationLayout">@layout/action_bar_home_icon_default</item>
   <item name="android:customNavigationLayout">@layout/action_bar_home_icon_default</item>
  </style>

@ layout / action_bar_home_icon_default - это ваш собственный макет с вашим собственным логотипом

0 голосов
/ 23 ноября 2012

Да.Вы можете установить разные логотипы для разных видов деятельности.Вот пример кода в файле манифеста.

<activity
   android:name="MyActivity"
   ***android:icon="@drawable/logo"***            
   android:label="@string/app_name"
   android:configChanges="orientation"           
   android:screenOrientation="portrait" />

Надеюсь, это поможет.Ура! * * 1004

...