首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

popupwindow 展示和消失的动画

2012-07-26 
popupwindow显示和消失的动画前段时间搞android 动画,在页面中使用动画后效果还是很不错的,大大提升了用户

popupwindow 显示和消失的动画

前段时间搞android 动画,在页面中使用动画后效果还是很不错的,大大提升了用户的体验感。 但是,偶然的机会,要在popupwindow 中,添加一个 显示和消失的动画,我用之前的动画效果,居然显示效果不对了。

?

同样是相同的代码,在页面上,就可以很好的显示,但是在popupwindow 上显示的效果,就不一样了。

?

eg:

?

? //显示动画

?

? ScaleAnimation myanim = new ScaleAnimation

? (0.0f, 1.1f, 0.0f, 1.1f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,? 0.5f);

? myanim.setDuration(duration); //设置时间间隔

?

? //隐藏动画

?

? ScaleAnimation myanim = new ScaleAnimation

? (1.0f, 0.0f, 1.0f, 0.0f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,? 0.5f);

? myanim.setDuration(duration); //设置时间间隔

?

?

? 这两个动画,就是一个简单的 以 视图的中心为参照点,放大显示,缩小隐藏 的动画效果。 在页面中,使用没有任何问题。但是在弹出的popupwindow上,却出现了,从左上角开始慢慢扩大的效果。

?

? 起初以为是,设置 运动动画view 的问题,但是经过反复调整还是无果。 最后,终于找到了答案。

?

?

?

以下是解决方法:

?

?

?

1> 首先定义好,显示和消失的动画xml;

?

?eg:

?

<!-- 显示动画-->

?

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

<scale? android:interpolator="@android:anim/accelerate_decelerate_interpolator"

????????? android:fromXScale="0.0"

????????? android:toXScale="1.0"

??? ??????android:fromYScale="0.0"

????????? android:toYScale="1.0"

????????? android:pivotX="50%"

????????? android:pivotY="50%"

????????? android:fillAfter="false"

????????? android:duration="200" >

?

</scale>

</set>

?

<!-- 消失动画-->

?

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

?<!-- 透明度渐变-->

?<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="200" />

</set>

?

?

?

2>? popupwindow 的显示和消失动画,是通过setAnimationStyle(int id) 的方法,来设置动画的。 这个方法的参数是,一个style 的id ;

?

???? 所以需要一个 动画style;

?

eg:

?

? <!-- popwidnow 显示消失 动画-->

?<style name="mypopwindow_anim_style">

? <item name="android:windowEnterAnimation">@anim/popshow_anim</item>??????? <!-- 指定显示的动画xml? -->

?? <item name="android:windowExitAnimation">@anim/pophidden_anim</item>?????? <!-- 指定消失的动画xml? -->

?</style>

?

3> 在代码中,添加popupwindow 动画;

?

? eg:

?

? PopupWindow myimgpopupwindow = new PopupWindow( View (要显示的view对象), LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

? myimgpopupwindow.setAnimationStyle(R.style.mypopwindow_anim_style); //设置动画

?

? myimgpopupwindow.showAtLocation( View( 参照的view对象), Gravity.CENTER, 0, 0);???? //居中来显示

?

?

?

好了,1,2,3, 搞定!这下,你是不是也会给popupwindow设置显示消失动画了?? Come on? ! 赶快试试吧!*~*

?

热点排行