今天,我一直在努力地使用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
是,是Android 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;