2012-05-10 12 views
8

私はアクションバーでこれを回避しようとしていますが、タイトルは基本的にTextViewですが、プレーンテキストの代わりにイメージを配置する必要があります。私はこのようスタイルthemes.xmlにそれを設定してみてください:ActionBar TextViewの代わりにImaveViewとしてのカスタムタイトル

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

このスタイルを定義した私は、タイトルの背景を定義したことができると思ったが、でも、私の場合doActionBar()を試してみてください。setCustomView(layout); setContentViewが呼び出される前に私のアクションバーがnullであることが起こり、Baseクラスで必要になります。

PD。私はHONEYCOMB以上について気にする必要があるので、SherlockまたはJonhanilsonの実装を提案しないでください。あなたがイメージをしたい場合

答えて

16

、アイコンと一緒にアプリのロゴを指定することができます(これは、アイコンの代わりに使用されます):

<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を使用する場合の両方を使用する必要があります。このような

1

オーバーライドsetContentView:

<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> 
:あなたがこれを行うことができます

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

OR、

関連する問題