Android Dialog动画无法启动

时间:2014-08-01 16:33:22

标签: android animation android-dialog

我只想在出现和消失时在我的对话框中添加动画,在那里我找到了这个帖子:

Animate a custom Dialog

我按照描述做了,这是我的代码:

 Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.getWindow().getAttributes().windowAnimations = R.style.FinishDialog;
    dialog.setCancelable(true);   
    dialog.setCanceledOnTouchOutside(true);    
    dialog.setContentView(R.layout.dialog_next);
    dialog.show();

我选择了android.R.style.Theme_Black_NoTitleBar_Fullscreen,因为我想要一个出现在动画中的全屏对话框。这个动画被称为" R.style.FinishDialog" 这是代码:

<style name="FinishDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowAnimationStyle">@style/FinishDialogAnimation</item>
</style>

<style name="FinishDialogAnimation">
    <item name="android:windowEnterAnimation">@anim/slide_down</item>
    <item name="android:windowExitAnimation">@anim/slide_up</item>
</style>

你可以看到我宣布了两个动画,这里是那些代码:

slide_down.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0%" android:toYDelta="100%" android:duration="300"/>

slide_up.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="100%" android:toYDelta="0%" android:duration="300"/>

现在,在调用dialog.show()方法时,对话框只会弹出而不显示动画。我检查了我的设置,并启用了所有动画。

我可以监督什么?

1 个答案:

答案 0 :(得分:0)

好像我已经发现了问题:

我只需将Dialog链接到FinishDialogAnimation而不是FinishDialog。看起来像这样:

dialog.getWindow().getAttributes().windowAnimations = R.style.FinishDialogAnimation;

而不是

dialog.getWindow().getAttributes().windowAnimations = R.style.FinishDialog;