1.首先在res/anim文件夹下创建slide_up.xml和slide_down.xml(文件名随意),代码如下:
slide_up.xml
- <set xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_decelerate_interpolator" >
- <translate android:duration="500"
- android:fromYDelta="100%p"
- android:toYDelta="0%p" />
- </set>
slide_down.xml
- <set xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_decelerate_interpolator">
- <translate android:duration="200"
- android:fromYDelta="0%p"
- android:toYDelta="100%p" />
- </set>
2.然后在res/values文件夹下的styleds文件(没有的话就新建一个),增加以下代码:
- <resources>
- <style name="DialogAnimation">
- <item name="android:windowEnterAnimation">@anim/slide_up</item>
- <item name="android:windowExitAnimation">@anim/slide_down</item>
- </style>
- </resources>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
3.最后,在dialog弹出之前,使用刚刚实现的动画效果:
Dialog dialog = new Dialog(mContext, R.style.mydialog);
dialog.setContentView(R.layout.dialog_camera);
LayoutParams layoutParams = dialog.getWindow().getAttributes();
layoutParams.y=10;
layoutParams.gravity = Gravity.TOP;
layoutParams.width = LayoutParams.MATCH_PARENT;
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
dialog.show();