Dialog dialog=new Dialog(this);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.getWindow().setGravity(Gravity.TOP);
dialog.getWindow().setWindowAnimations(R.style.dialog_animation); // 添加动画
Style:
<!--控制dialog进出动画-->
<style name="dialog_animation" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/dialog_enter</item>
<!-- 进入时的动画 -->
<item name="android:windowExitAnimation">@anim/dialog_exit</item>
<!-- 退出时的动画 -->
</style>
dialog_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--顶部 进入-->
<!--<translate-->
<!--android:duration="1000"-->
<!--android:fromYDelta="-100%p"-->
<!--android:toYDelta="0%p"-->
<!--/>-->
<!--底部 进入-->
<translate
android:duration="1000"
android:fromYDelta="100%p"
android:toYDelta="0%p"
/>
</set>
dialog_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!--顶部 退出-->
<!--<translate-->
<!--android:duration="1000"-->
<!--android:fromYDelta="0%p"-->
<!--android:toYDelta="-100%p"-->
<!--/>-->
<!--底部 退出-->
<translate
android:duration="1000"
android:fromYDelta="0%p"
android:toYDelta="100%p"
/>
</set>