我想为我的应用制作一个Actionbar_style.xml,我想使用一个与我的应用徽标/图标不同的徽标。
如何以程序化的方式更改它很明显:Change logo that appears in Android ActionBar programatically 但是像这样我需要将其编码到每个活动中。
是否有xml标签用于在xml中定义自定义Actionbarlogo?
我的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>
答案 0 :(得分:36)
只需为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>
答案 1 :(得分:2)
您不会在自己的样式XML中设置徽标样式,只需在清单中使用android:logo
,然后使用setDisplayUseLogoEnabled()
在ActionBar
中设置徽标。这是一个来自Google的项目,它向您展示如何在两者之间切换。 http://code.google.com/p/styled-action-bar/
答案 2 :(得分:1)
听起来您需要为操作栏使用自定义布局,这样您就可以为徽标图像定义任何内容。
操作栏/ 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是您的自定义布局,带有您的自定义徽标
答案 3 :(得分:-1)
是。您可以为不同的活动设置不同的徽标。以下是清单文件中的示例代码。
<activity
android:name="MyActivity"
***android:icon="@drawable/logo"***
android:label="@string/app_name"
android:configChanges="orientation"
android:screenOrientation="portrait" />
希望这有帮助。干杯!