Creating a Custom Dialog | Android Developersにあるようにxml用意して、設定してやれば良い。
とりあえず例を参考に下記のようにAlertDialogを準備して、ボタンを押したらshowするようにした。
View dialogView = View.inflate(this, R.layout.dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Custom Dialog").setView(dialogView);
alertDialog = builder.create();
用意したxmlは表示されるけど、その上下に微妙に空間ができてしまった。。
で調べる。
AlertDialog.BuilderのsetViewでは設定できないけど、AlertDialogだとpublic void setView (View view, int viewSpacingLeft, int viewSpacingTop, int viewSpacingRight, int viewSpacingBottom)で設定できそう。
下記のように書き換える。
View dialogView = View.inflate(this, R.layout.dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Custom Dialog");
alertDialog = builder.create();
alertDialog.setView(dialogView, 0, 0, 0, 0);
スペースは消えてくれたので、やりたいことはできた。
ただ、builderでbuild(タイトルとかボタンとかのset)をしてcreateされたdialogに、Viewをsetしてやるのはなんとなく気持ち悪さが残る。setは全てbuilderでできる気がしてたので。