Android ApiDemo学习(五)Animation—— 1 Bouncing Balls

可以看到本例有两个动画效果:

- 背景色在不停的渐变当中

- 点击鼠标左键,点击处会有一个小球生成,并落地

 

分析这两个动画:

  • 背景色的渐变:

这个动画效果是使用属性动画完成的。

首先实例化通过ObjectAnimator实例化一个属性动画的ValueAnimator对象。这个动画要改变的是背景颜色,从RED色渐变到BLUE色。

通过ValueAnimator初始化动画的持续时间、重复次数、到最后一帧后的动作等。

最后start()开始动画。

  • 小球动画:

1. 实例化一个ShapeHolder形的ArrayList对象balls。

2.自定义函数addBall(float x, float y):实现增加一个(x,y)位置的小球

(1)初始化一个圆形实例circle,设置其半径为50f。

(2)使用这个圆形circle实例化一个ShapeHolder实例sh,初始化其起始位置

(3)初始化一个画刷paint,设置画刷要画的图形(一个RadialGradient对象,设置圆心、半径、颜色、模式)

(4)将这个画刷设置为sh使用的画刷

(5)balls添加sh

3. 为鼠标点击事件添加监听器

(1)调用addBall,在鼠标点击位置添加一个小球

(2)为这个小球添加两部分动画:

-小球运动——这是个动画集,包含三个部分

    --小球下降

    --小球被挤压、拉伸(包含两个挤压、两个拉伸)

    --小球弹起

-小球消失——这是个动画

    --小球透明度越来越大,全部透明时将这个小球移除

4. 刷屏函数onDraw()

(1)从ShapeHolder形的ArrayList对象balls中不断取出元素

(2)平移画布

(3)绘制

(4)重置这个画布

 

关于这个动画的详细解释,可以参考这篇博文:http://mzh3344258.blog.51cto.com/1823534/889898

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值