android PopupWindow 动画效果

  次阅读 来源:互联网(转载协议) 2015-10-13 07:32 我要评论(0)

前段时间搞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 ! 赶快试试吧!*~*

摘自 zjl5211314的专栏

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...