私は、ユーザーが好みの色に背景色を(好みによって)変更できる主なアクティビティを持っています。私の問題は、カスタムダイアログの背景色を変更できないことです。スタックオーバーフローでダイアログの背景色をプログラム的に変更するにはどうすればよいですか?
他の答えが示唆:好ましい色に
(A)overiding the default theme。実行時にテーマを変更することはお勧めできませんので、私はこの場合適切な解決策ではないと思います。
(b)のChanging in styles.xml(私は実行時に変更することはできませんこの場合に適していない)
(C)Overriding the AlertBuilder class(これは全体の警告ダイアログを濃淡)
私が来ている。この最も近いです色を変更することはアラートビルダーのタイトルを削除し、カスタムビューの背景をお気に入りの色(eg.pink)に設定することです。残念ながら、これはダイアログの上部と下部に醜いストリップを与えます。
コードが画像の後に含まれていますので、ダイアログの背景を変更する方法についてのご意見をお待ちしております。
カスタムダイアログビューの背景色を変更するためのデフォルトの外観
protected Dialog onCreateDialog(int dialogId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View viewMessEdit = inflater.inflate(R.layout.example,(ViewGroup) findViewById(R.id.dialog_mess_edit_root));
builder.setView(viewMessEdit);
builder.setTitle("Alert builder's title");
}
コードのコード
(およびアラートビルダーのタイトルが削除されます)protected Dialog onCreateDialog(int dialogId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View viewMessEdit = inflater.inflate(R.layout.example,(ViewGroup) findViewById(R.id.dialog_mess_edit_root));
builder.setView(viewMessEdit);
viewMessEdit.setBackgroundResource(R.color.pink_dark);
}
あなたは写真としてこのダイアログを終了できますか?はいの場合は共有できますか? – pengwang