안드로이드

안드로이드 다이얼로그 애니메이션 적용하기 Showing dialog with animation in Android

알통몬_ 2020. 2. 25. 17:34
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


안드로이드 다이얼로그를 열 때, 

닫을 때 애니메이션 적용 방법입니다.


#1. anim 디렉토리에 open, close 시 

   적용할 애니메이션을 선언합니다.

   저의 경우, 확대, 축소를 적용했습니다.

<!--expansion_dialog.xml-->
<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<scale
android:duration="200"
android:fromXScale="0.2"
android:fromYScale="0.2"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0"
/>
</set>


<!--reduction_dialog.xml-->
<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.0"
android:toYScale="0.0" />
</set>

사용 시 주석은 제거하시고 

<?xml ~~ 이 가장 첫줄에 선언되어야 합니다.


#2. styles.xml에 style 선언

<style name="style_expansion_dialog">
<item name="android:windowEnterAnimation">@anim/expansion_dialog</item>
<item name="android:windowExitAnimation">@anim/reduction_dialog</item>
</style>


#3. 애니메이션 실제 적용하기

다이얼로그의 onCreate() 에서

WindowManager.LayoutParams lpWindow = new WindowManager.LayoutParams();
//WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
lpWindow.windowAnimations = R.style.style_expansion_dialog;
getWindow().setAttributes(lpWindow);

선언하시면 됩니다.

위 네 줄 중에  두 줄은 원하시는대로 사용하시면 됩니다. 

둘 중 한 줄로.




반응형