我试图在我的操作栏中显示一个徽标,该徽标与我需要与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。
答案 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>