web-dev-qa-db-ja.com

XMLで(ロゴとは異なる)ActionBarのカスタムロゴを定義しますか?

アプリの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>
23
KarlKarlsom

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

スタイルXMLでロゴのスタイルを設定するのではなく、マニフェストで_Android:logo_を使用し、setDisplayUseLogoEnabled()を使用してActionBarに設定します。以下は、Googleのプロジェクトで、2つを切り替える方法を示しています。 http://code.google.com/p/styled-action-bar/

2
adneal

アクションバーにカスタムレイアウトを使用する必要があるように聞こえます。この方法で、ロゴ画像に必要なものを定義できます。

アクションバー/アクションバーシャーロックスタイル

    <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はカスタムレイアウトで、カスタムロゴがあります

1
scottyab