一种提示用户的dialog动画

来源:互联网 发布:淘宝模特一天多少衣服 编辑:程序博客网 时间:2024/06/08 08:59

为什么会搞这个

最近公司要一个提供用户中奖的动画效果,我接到这个任务就想了想应该用什么做呢,特么我的第一反应就是一个dialog,然后给dialog加一个动画,嗯,就是这样。

特么咋搞

首先必须了解dialog是啥,dialog即一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能。
大家肯定也知道直接调用系统的dialog是出现在屏幕中央的那种,那我要的不是这种效果,我的需求是从天而降的dialog动画,而且还能弹弹弹的那种,因为UI给我的图片上面就有一根绳子

所以第一步肯定需要自定义了。核心代码如下:
这里写图片描述
感觉跟activity一样啊,都是setContentView,里面就是你要展示的dialog的布局。这个自己设置,我就不展示了。
然后里面给window设置动画,设置背景啊啥的。
要注意我是从天而降的而且有绳子有一种有绳子吊着的赶脚!所以我重心设置为top:
这里写图片描述
注意我写了两个方法一个不定义dialog的起始位置,一个自定义dialog的起始位置。这个看你们自己个人选择。
这里写图片描述
这里写图片描述
参数x和y的作用注释中写的很清楚了。
里面有一个小技巧,就是设置dialog的宽和高的问题,我这里把宽设置为屏幕宽度的4/5。然后高怎么设置呢,这里还有一个小技巧,就是首先你可以拿到你那张真实dialog的背景图的高和宽的比例,比如563/515,那高=宽*563/515,这样有什么好处呢,就是保证你的dialog的图片效果比例和原图一样,就不会有那种拉伸变胖或者变瘦的感觉。

第二步,下面就到了动画环节,直接贴代码:
这里写图片描述
这里写图片描述
这里写图片描述
上面的插值器的BounceInterpolator就是弹跳效果,平移的几个属性fromYDelta和toYDelta就是动画Y轴的起点和终点,从屏幕的上方看不见的地方移到屏幕所以用的-100%和0,这些都可以自己设置。

第三步,就是哪里需要这个动画,你就在哪里new这个dialog就好了。
这里写图片描述
那个notitle跟activity很相似的,可以写在setContentView的上面也行,一劳永逸了。

你妹的,终于搞完了

自己搞完了,感觉很简单,要相信没有什么是安卓不能实现的。

0 0