本文是基于AlertDialog实现的效果,主要的实现代码就是dialog.getWindow(),然后在得到的Window中setWindowAnimations.在这里就可以设置dialog的显示动画,具体实现代码如下
AlertDialog d =new AlertDialog.Builder(this).create(); d.show(); Window window = d.getWindow(); window.setContentView(R.layout.view);//这里的layout自己随意写 window.setlayout(w,h);//高度和宽度自己指定,可根据屏幕大小 window.setGravity(Gravity.BOTTOM); window.setWindowAnimations(R.style.myanim);
<style name="myanim" parent="android:Animation"> <item name="@android:windowEnterAnimation">@anim/in</item> <item name="@android:windowExitAnimation">@anim/out</item> </style>
<translate android:fromYDelate="100%p" android:duration="200"/>
<translate android:toYDelate="100%p" android:duration="200"/>
android:fromYDelate
android:toYDelate这两个的意思大家应该没有什么问题,主要是其中的属性值,%p的意思是相对于parent的百分之几。上面的in.xml其实是省略了一个属性,写全的话如下
<translate android:fromYDelate="100%p" android:toYDelate="0%p" android:duration="200"/>
<translate android:fromYDelate="0%p" android:toYDelate="100%p" android:duration="200"/>
这样就基本模仿出了微信退出对话框从屏幕下滑出的效果。。。