저는 오늘 Dialog 애니메이션으로 어려움을 겪었고 마침내 스타일을 사용하여 작동하게되었으므로 여기에 예가 있습니다.
우선, 가장 중요한 것은 아마도 오늘 5 가지 방식으로 작동했지만 알 수 없었습니다. 장치 애니메이션 설정이 "애니메이션 없음"(설정 → 디스플레이 → 애니메이션)으로 설정되어 있으면 대화 상자가 이겼습니다. 당신이 무엇을하든 애니메이션되지 마십시오!
다음은 내 styles.xml의 제거 된 버전입니다. 자명하기를 바랍니다. 이 위치는 res/values
.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="PauseDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item>
</style>
<style name="PauseDialogAnimation">
<item name="android:windowEnterAnimation">@anim/spin_in</item>
<item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>
</resources>
는 windowEnterAnimation
내 애니메이션 중 하나입니다에 위치하고 있습니다 res\anim
. 는 windowExitAnimation
안드로이드 SDK의 일부인 애니메이션 중 하나입니다.
그런 다음 내 활동 onCreateDialog(int id)
방법 에서 대화 상자를 만들 때 다음을 수행합니다.
Dialog dialog = new Dialog(this, R.style.PauseDialog);
// Setting the title and layout for the dialog
dialog.setTitle(R.string.pause_menu_label);
dialog.setContentView(R.layout.pause_menu);
또는 테마를 사용하는 Dialog 생성자를 사용하는 대신 다음과 같은 방법으로 애니메이션을 설정할 수 있습니다.
Dialog dialog = new Dialog(this);
dialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;