8

アクションバーでこれを回避しようとしましたが、タイトルは基本的に TextView ですが、プレーンテキストの代わりに画像を配置する必要があります。私は次のようにスタイルのthemes.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(layout); を試してください。しかし、setContentView が呼び出される前に私のアクションバーが null であり、Base クラスでそれが必要であることが起こりました。

PD。HONEYCOMB と Higher だけを気にする必要があるので、Sherlock または Jonhanilson の実装を提案しないでください。

4

2 に答える 2

16

画像が必要な場合は、アプリのロゴとアイコンを指定できます (アイコンの代わりに使用されます)。

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

これで、ランチャー アイコンの代わりに任意の画像が表示されます。次に行う必要があるのは、テキストを削除することです。あなたのスタイルで次のようなことをしてください:

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

よく覚えていれば、ActionBarSherlock を使用する場合item name="titleTextStyle"と、両方を使用する必要があります。item name="android:titleTextStyle"

于 2012-05-10T14:55:03.670 に答える
1

次のように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>
于 2012-05-10T14:56:09.613 に答える