因为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);