Android ダイアログのヘッダーのスタイルを設定したい。標準の Android ダイアログは次のようになります。
私が欲しいのは、私がフォトショップしたこのような sth です (ヘッダーのスタイル設定された背景と別のテキストの色)。
テーマをパラメーターとして Dialog()-Constructor に渡すことができることを知っています。しかし、xml スタイルの要素がどのように見えるかはわかりません。
Android ダイアログのヘッダーのスタイルを設定したい。標準の Android ダイアログは次のようになります。
私が欲しいのは、私がフォトショップしたこのような sth です (ヘッダーのスタイル設定された背景と別のテキストの色)。
テーマをパラメーターとして Dialog()-Constructor に渡すことができることを知っています。しかし、xml スタイルの要素がどのように見えるかはわかりません。
これで使えるはずですsetCustomTitle(View)
。私はそれを使用したことはありませんが、次のようになります。
TextView title = new TextView(context);
title.setBackgroundColor(0xFFFF0000);
title.setTextColor(0xFFFFFFFF);
title.setLayoutParams(/* LayoutParams with MATCH_PARENT width and WRAP_CONTENT height */);
title.setPadding(/* Some padding values */);
yourDialogBuilder.setCustomTitle(title);
既存の Android ダイアログ タイトルのレイアウトをそのままコピーするという点では、これらの値のパラメーターが何であるかはわかりません。それらを見つけるには、いじったり、Google で調べたりする必要があるかもしれません。(フォント自体は明らかに、4.0 以降では Roboto、それ以下では Droid です。)
その本当に単純な...
アップロードした写真の XML レイアウトを作成し、作成したばかりの XML ファイルでダイアログを膨らませるだけです。
サンプルコードを提供するだけなので、簡単にフォローできます
private View mView;
private Dialog mDialog;
private LayoutInflater mInflater;
次のように関数を作成します:-
private void showCustomDialog() {
mInflater = (LayoutInflater) getBaseContext().getSystemService(
LAYOUT_INFLATER_SERVICE);
ContextThemeWrapper mTheme = new ContextThemeWrapper(this,
R.style.YOUR_STYE);
mView = mInflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE, null);
// mDialog = new Dialog(this,0); // context, theme
mDialog = new Dialog(mTheme);
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialog.setContentView(this.mView);
mDialog.show();
TextViiew someText = (TextView) mView.findViewById(R.id.textViewID);
// do some thing with the text view or any other view
}
最後に、スタイルが次のようになっていることを確認してください:-
<style name="YOUR_STYLE">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowContentOverlay">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
それだけです....完了です...カスタムダイアログを表示したい場所でこの関数を呼び出すだけです....
説明がお役に立てば幸いです....