2

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

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

4

2 回答 2

1

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

于 2013-12-16T19:38:26.137 回答
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>
于 2014-06-05T15:25:34.460 回答