標準のタイトルを無効にしてすべてを自分で管理することで、アクティビティのカスタムタイトルを作成しています。私のニーズに合わせて、標準のタイトルを置き換える/テーマ化することは可能ですか?.
WindowXYZStyleの項目を変更することで、テーマを介してサイズ、背景画像、テキストをカスタマイズできます。
私が見つけられなかった唯一のもの-テキストの代わりに画像を追加する方法。私はrequestWindowFeature(Window.FEATURE_CUSTOM_TITLE)
を試してカスタムレイアウトを割り当てましたが、動作しないようです。
編集:これはテストの提案のレポートです、コードは以下です-結果-画像ビューが表示されていません。
アクティビティ
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
XML :
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/title"
Android:layout_width="fill_parent"
Android:layout_height="26dip"
Android:paddingLeft="5dip"
Android:background="@drawable/titlebar_bg"
Android:layout_gravity="left|center"
>
<ImageView
Android:id="@+id/logo"
Android:src="@drawable/title_logo"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
独自のカスタムタイトルレイアウトを設定することは可能ですが、実行の順序は重要です。次の順序で作業を行う必要があります。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.my_layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_title);
さらに、タイトルのサイズを大きくする必要がある場合があります。そうしないと、カスタムレイアウトの下部がアクティビティによって覆われる可能性があります。タイトルのサイズを指定するテーマを追加して、サイズを変更できます。これは、値のXMLファイルに入ります。
<resources>
<style name="LargeTitleTheme">
<item name="Android:windowTitleSize">40dip</item>
</style>
</resources>
次に、AndroidManifest.xmlでアクティビティ(またはアプリケーション全体でこのカスタムタイトルバーを使用する場合はアプリケーション)のテーマを設定する必要があります。
<activity Android:name=".MyCustomTitleActivity" Android:theme="@style/LargeTitleTheme" />
あなたはいつでも使うことができます:
requestWindowFeature(Window.FEATURE_NO_TITLE);
次に、アクティビティのビュー内に独自のタイトルバーを作成します。
背景画像の一部として組み合わせてタイトルを空白のままにするのではなく、タイトルに画像を使用する必要があると確信していますか? NinePatch 画像の使用デバイスに関係なく見栄えの良い結果が得られると思いますか?
カスタムタイトルを画面に合わせるために次のコードを使用しました
<ImageView
Android:id="@+id/header_img"
Android:src="@drawable/header_img"
Android:layout_width="700dip"
Android:layout_height="70dip" />