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

发布于 2024-12-24 23:14:44 字数 1783 浏览 0 评论 0原文

我想为我的应用程序制作一个 Actionbar_style.xml,并且我想使用与我的应用程序徽标/图标不同的徽标。

如何以编程方式更改它很清楚: 更改 Android 中出现的徽标以编程方式操作栏 但像这样我需要将其编码到每个活动中。

是否有一个 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>

I want to make a Actionbar_style.xml for my app and I would like to use a logo, different than my app logo / icon.

How to change it programmatcially is clear: Change logo that appears in Android ActionBar programatically
But like this I would need to code this into each activity.

Is there a xml tag to define a custom Actionbarlogo in xml already?

my Customstyles.xml

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

android styles.xml seems not to have it...

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

何其悲哀 2024-12-31 23:14:44

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

Just set a value for the android:icon attribute

<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>
-黛色若梦 2024-12-31 23:14:44

您无需在样式 XML 中设置徽标样式,只需在清单中使用 android:logo ,然后使用 setDisplayUseLogoEnabled()中设置它操作栏。这是来自 Google 的一个项目,向您展示如何在两者之间切换。 http://code.google.com/p/styled-action-bar/

You don't style the logo in the your style XML, you simply use android:logo in your Manifest, then use setDisplayUseLogoEnabled() to set it in the ActionBar. Here's a project, from Google, that shows you how to switch between the two. http://code.google.com/p/styled-action-bar/

献世佛 2024-12-31 23:14:44

听起来您需要为操作栏使用自定义布局,这样您就可以定义您想要的徽标图像。

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

Sounds like you need to use a custom layout for the action bar, that way you can define a whatever you want for logo image.

Action bar / ActionbarSherlock style

    <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 is your custom layout, with your custom logo

就此别过 2024-12-31 23:14:44

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

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

希望这有帮助。干杯!

Yes. You may set different logo for different activities. Here is the sample code in manifest file.

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

Hope this help. Cheers!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文