ActionBar настраиваемый заголовок как ImaveView вместо TextView

Я пытаюсь обойти это на панели действий, но из того, что я вижу в названии, в основном является TextView, но мне нужно разместить изображение вместо обычного текста. Я пытаюсь настроить его в стиле theme.xml следующим образом:

<item name="android:actionBarStyle">@style/MyActionBar</item> 

И тогда я определил этот стиль

  <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">@drawable/action_background</item> <item name="android:titleTextStyle">@style/ActionbarTitleStyle</item> </style> 

Я думал, что могу определить фон для названия, но даже если я делаю это не то, что я хочу, попробуйте getActionBar (). SetCustomView (макет); Но я понял, что моя панель действий имеет значение null до вызова setContentView, и мне это нужно в базовом классе.

Оплаченный Мне нужно только заботиться о HONEYCOMB и Higher, поэтому, если вы не хотите предлагать варианты Шерлока или Йонанильсона.

Если вы хотите изображение, вы можете указать логотип приложения вместе со значком (он будет использоваться вместо значка):

 <application android:icon="@drawable/ic_launcher" android:logo="@drawable/logo" android:label="@string/app_name" android:name=".AppName" > 

Теперь у вас есть произвольное изображение вместо значка lanucher. Что вам нужно сделать дальше, так это избавиться от текста. В ваших стилях делайте что-то вроде:

 <style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar"> <item name="titleTextStyle">@style/NoTitleText</item> <item name="android:titleTextStyle">@style/NoTitleText</item> <item name="subtitleTextStyle">@style/NoTitleText</item> <item name="android:subtitleTextStyle">@style/NoTitleText</item> </style> <style name="NoTitleText"> <item name="android:textSize">0sp</item> <item name="android:textColor">#00000000</item> </style> 

Вы должны использовать оба item name="titleTextStyle" и item name="android:titleTextStyle" если вы используете ActionBarSherlock, если я хорошо помню.

Переопределите setContentView следующим образом:

 @Override public void setContentView(int resLayoutId) { super.setContentView(resLayoutId); // TODO Set your actionbar changes here } 

ИЛИ, вы можете сделать это:

 <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">@drawable/action_background</item> <item name="android:titleTextStyle">@style/ActionbarTitleStyle</item> <item name="android:displayOptions">showCustom</item> <item name="android:customNavigationLayout">@layout/custom_nav_layout</item> </style>