因为PopupWindow不同于view,它不提供setAnimation接口,所以不可使用【android】动画效果研究(view)【1】中所使用的方法。但Android提供了PopupWindow.setAnimationStyle方法。
参考文献:http://gqdy365.iteye.com/blog/1007282
(1)定义动画文件
与一样,也使用Animation类,对于该类中几种动画效果的定义以及使用,可参加【android】动画效果研究(view)【1】,这里不再重复。也可以参考以上文献。
(2)定义style.xml文件
popupwindow的效果要在style中定义相应的动画并引用刚才定义的动画文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="toast_anim" parent="@android:style/Animation.Dialog" mce_bogus="1"> <item name="android:windowEnterAnimation">@anim/dialog_enter_action</item> <item name="android:windowExitAnimation">@anim/dialog_enter_action</item> </style> </resources>
(3)在Activity中调用setAnimationStyle
View TestView = getLayoutInflater().inflate(R.layout.dialog, null); PopupWindow testPop = new PopupWindow(TestView); testPop.setAnimationStyle(R.style.toast_anim); testPop.showAtLocation(v, Gravity.CENTER, 0, 0); testPop.update(0,0,300,200);