* 필요성

 - 일반적으로 사용하는 AlertDialog의 경우, 정형화된 popup창을 제공함에 따라 유연성 부족

 

* 사용예제 및 설명

=============================

Dialog dialog = new Dialog(this);

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

TextView tv = new TextView(this);
tv.setText("Test content");
dialog.setContentView(tv);
dialog.show();

WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.dimAmount = 0.3f;
dialog.getWindow().setAttributes(lp);

 =============================


Dialog dialog = new Dialog(this);

: Dialog 생성

 

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

: Dialog는 기본적으로 title영역을 가지고 있기때문에, title을 사용하지 않기위해 호출

: Window에 정의된 다른 feature들 또한 필요에 따라 사용하면됨.

 

TextView tv = new TextView(this);
tv.setText("Test content");
dialog.setContentView(tv);

: 임의로 TextView 생성하여 dialog에 보여줄 view 생성해서 지정해주기

  일반적인 view뿐 아니라 layout 에 정의된 resource도 지정 가능

 

dialog.show();

: dialog show~

 

WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.dimAmount = 0.3f;
dialog.getWindow().setAttributes(lp);

: dialog 이외 영역의 background dim 처리 값을 정의해줌

  default값은 0.6 으로 되어 있으며, 뒷 영역의 dim처리를 0 ~ 1 값을 통해 조정

  WindowManager.LayoutParams 의 경우 이 외에도 x,y, gravity등 여러 조정 가능한 값들이 있으며, flag를 통해 blur처리등 여러 효과에 관한 변화를 줄 수 있음.

 

* 부연설명

상기 예제는 아주 간단한 예를 들어 놓은 것으로 setContentView, requestWindowFeature, WindowManager.LayoutParams 등을 통해 다양한 dialog생성이 가능함.