在XML中为ActionBar定义自定义徽标(与徽标不同)?

我想为我的应用创build一个Actionbar_style.xml,我想使用一个徽标,与我的应用徽标/图标不同。

如何在编程上更改它是明确的:以编程方式更改出现在Android ActionBar中的徽标但是,像这样,我需要将其编码到每个活动中。

是否有一个XML标签来定义一个自定义的Actionbarlogo已经在XML?

我的Customstyles.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> 

只需为android: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> 

您不会在样式XML中devise徽标,只需在Manifest中使用android:logo ,然后使用setDisplayUseLogoEnabled()将其设置在ActionBar 。 这里有一个来自Google的项目,向您展示了如何在两者之间切换。 http://code.google.com/p/styled-action-bar/

听起来你需要使用一个自定义布局的动作栏,这样你可以定义一个你想要的标志图像。

操作栏/ 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是您的自定义布局,并带有您的自定义徽标

是。 您可以为不同的活动设置不同的标志。 这是清单文件中的示例代码。

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

希望这个帮助。 干杯!