我只想在出现和消失时在我的对话框中添加动画,在那里我找到了这个帖子:
我按照描述做了,这是我的代码:
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()方法时,对话框只会弹出而不显示动画。我检查了我的设置,并启用了所有动画。
我可以监督什么?
答案 0 :(得分:0)
好像我已经发现了问题:
我只需将Dialog链接到FinishDialogAnimation而不是FinishDialog。看起来像这样:
dialog.getWindow().getAttributes().windowAnimations = R.style.FinishDialogAnimation;
而不是
dialog.getWindow().getAttributes().windowAnimations = R.style.FinishDialog;