chance 2013. 2. 22. 15:33

 

1. 기본 스타일

에니메이션에 스타일 적용.

<style name="MyDialog">

   <item name="android:windowFrame">@null</item>

   <item name="android:windowBackground">@android:color/transparent</item>

   <item name="android:windowIsFloating">true</item>

   <item name="android:windowContentOverlay">@null</item>

   <item name="android:windowTitleStyle">@null</item>

   <item name="android:windowAnimationStyle">@style/MyDialogAnimation</item>

   <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>

   <item name="android:backgroundDimEnabled">true</item>

   <item name="android:background">@android:color/transparent</item>

</style>

 

2. 에니메이션 스타일 정의

진입시 커스텀 에니메이션 , 사라질때 안드로이드 내부 에니메이션

<style name="MyDialogAnimation">

   <item name="android:windowEnterAnimation">@anim/slide_in_up</item>

   <item name="android:windowExitAnimation">@android:anim/fade_out</item>

/style>

 

3. 생성자에서 스타일 지정

public MyDialog( Context context ) {

super( context, R.style.MyDialog );

}

 

 

4. 다이얼로그 root(window) 레이아웃 설정

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.password_dialog);

// 사이즈 설정

Window window = this.getWindow();

window.setLayout( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

findViewById(R.id.left_button).seton_clickListener(this);

}

 

 

5. 만약 코드상에서 속성 수정할때는?

MyDialog dlg = new MyDialog( this );

WindowManager.LayoutParam param = dlg.getWindow().getAttributes();

param.windowAnimation = R.style.MyDialogAnimation;

 

 

 

 

Dialog는 이거면 끝??? 긁적~