以编程方式制作自定义对话框动画

6

我想为我的自定义对话框设置一些动画,并且希望以编程方式实现。我知道可以使用xml动画来实现:

<style name="DialogAnimation">
    <item name="android:windowEnterAnimation">@anim/slide_up_dialog</item>
    <item name="android:windowExitAnimation">@anim/slide_out_down</item>
</style>


Dialog imageDiaglog= new Dialog(MainActivity.this,R.style.DialogAnimation);

我想以编程方式完成此操作。我如何将通过编程创建的动画设置为对话框的show()和hide()方法?
谢谢。
2个回答

1

你无法这样做,因为对话框使用样式元素进行动画过渡。而且你不能以编程方式设置样式元素。


好的,谢谢。可以通过编程实现FragmentDialog吗? - Ranjithkumar
如果可能的话,请把您的答案发布出来。我会给您悬赏。谢谢。 - Ranjithkumar

0

您可以使用DialogFragment并在onCreateDialog(Dialog)onStart()中设置动画。示例来自这里

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    Dialog dialog = super.onCreateDialog(savedInstanceState);
    dialog.getWindow().getAttributes().windowAnimations = R.style.detailDialogAnimation;
    return dialog;
}

我需要通过编程实现动画,而不是从动画文件中获取。 - Ranjithkumar
你应该能够使用getDialog().getWindow().setEnterTransition(yourTransition);。你可能需要调用dialog.getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); - Jared Rummler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接