2013-11-08 6 views
2

Я пытаюсь показать логотип в своей панели действий, отличный от моего значка приложения в приложении, которое должно быть совместимо с 2.3 (Gingerbread). Прямо сейчас у меня естьИзменить логотип панели действий на Gingerbread в xml

 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.

ответ

1

Вы можете указать значок android: значок для каждой активности в AndroidManifest.xml.

+0

Да, я надеялся, что смогу установить его по всему миру, а не в каждом мероприятии. – GLee

1

Я использую для этого ActionBarCompat Google; если вы используете 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> 
Смежные вопросы