嗯~有意思的Dialog动画

为什么会搞这个

最近公司要一个提供用户中奖的动画效果,我接到这个任务就想了想应该用什么做呢,特么我的第一反应就是一个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的上面也行,一劳永逸了。

你妹的,终于搞完了

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


转自:http://blog.csdn.net/qq_34184412/article/details/52264285

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值