在xml上改变姜饼上的动作栏标志

时间:2013-11-08 22:29:43

标签: android android-actionbar

我试图在我的操作栏中显示一个徽标,该徽标与我需要与2.3(Gingerbread)兼容的应用中的应用图标不同。现在我有,

        android:icon="@drawable/icon"
        android:logo="@drawable/logo"

在我的清单文件中,它正确显示在4.0及更高版本的设备上。但是,2.3设备上的所有操作栏都显示图标而不是徽标。活动中onCreate中的以下代码适用于2.3设备:

    getSupportActionBar().setLogo(getResources().getDrawable(R.drawable.logo));

但是,我希望避免在我的每项活动中单独设置它。有没有办法在xml中,在清单或主题中设置它?我也试过了

    <item name="android:icon">@drawable/logo_listy</item> 

在我的主题actionBarStyle。

2 个答案:

答案 0 :(得分:1)

您可以为AndroidManifest.xml中的每个活动指定android:icon。

答案 1 :(得分:1)

我正在使用Google的ActionBarCompat;如果您正在使用ActionBarSherlock,那么同样的事情可能有效,但我还没有尝试过。

您可以在应用程序主题中应用于操作栏的样式中设置徽标。例如:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle" tools:targetApi="11">@style/AppTheme.ActionBar</item>
    <item name="actionBarStyle">@style/AppTheme.ActionBar</item>
</style>

<style name="AppTheme.ActionBar"
       parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">

    <!-- this can be set in the manifest or here, and will set the logo for -->
    <!-- devices with API level >= 11 --> 
    <item name="android:logo" tools:targetApi="11">@drawable/logo</item>

    <!-- this will set the logo for devices with API level < 11 -->
    <item name="logo">@drawable/logo</item>
</style>