web-dev-qa-db-ja.com

画像付きのカスタムタイトル

標準のタイトルを無効にしてすべてを自分で管理することで、アクティビティのカスタムタイトルを作成しています。私のニーズに合わせて、標準のタイトルを置き換える/テーマ化することは可能ですか?.

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>
27
Alex Volovoy

独自のカスタムタイトルレイアウトを設定することは可能ですが、実行の順序は重要です。次の順序で作業を行う必要があります。

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" />
35
Daniel Lew

あなたはいつでも使うことができます:

requestWindowFeature(Window.FEATURE_NO_TITLE);

次に、アクティビティのビュー内に独自のタイトルバーを作成します。

7
Dave Webb

背景画像の一部として組み合わせてタイトルを空白のままにするのではなく、タイトルに画像を使用する必要があると確信していますか? NinePatch 画像の使用デバイスに関係なく見栄えの良い結果が得られると思いますか?

1
Casebash

カスタムタイトルを画面に合わせるために次のコードを使用しました

<ImageView
    Android:id="@+id/header_img"
    Android:src="@drawable/header_img"
    Android:layout_width="700dip"
    Android:layout_height="70dip" />
1
arunprakashpj