ActionBar自定义标题为ImaveView而不是TextView

Nec*_*net 8 customization android android-actionbar

我试图在动作栏上解决这个问题,但从我可以看到的标题基本上是一个TextView,但我需要放置一个图像而不是纯文本.我尝试将其设置为Style themes.xml,如下所示:

<item name="android:actionBarStyle">@style/MyActionBar</item>
Run Code Online (Sandbox Code Playgroud)

然后我定义了这种风格

 <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>
Run Code Online (Sandbox Code Playgroud)

我认为我可以为标题定义背景,但即使我做的不是我想要的,也可以试试getActionBar().setCustomView(layout); 但是在调用setContentView之前发生我的操作栏为空,我需要在Base类中使用它.

PD.我只需要关心HONEYCOMB和更高,所以如果你不建议Sherlock或Jonhanilson实施.

Mic*_*ł K 16

如果你想要一个图像,你可以指定应用程序徽标和图标(它将用于代替图标):

<application
    android:icon="@drawable/ic_launcher"
    android:logo="@drawable/logo"
    android:label="@string/app_name"
    android:name=".AppName"
    >
Run Code Online (Sandbox Code Playgroud)

现在你有一个任意图像而不是你的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>
Run Code Online (Sandbox Code Playgroud)

如果我记得很清楚,你应该使用两者item name="titleTextStyle",item name="android:titleTextStyle"如果你使用ActionBarSherlock.