动画

View动画

View动画的对象是view,支持4种动画效果,在xml里分别对应<translate><scale><rotate><alpha>四个标签

xml文件的基元素为<set>标签,有interpolator等属性来设置动画

其他一些常用属性,比如duration、fillAfter

使用方法:

1.在res文件下创建anim文件

2.在里面创建动画xml文件

3.在<set>里指定动画

4.在代码里使用AnimationUtils.loadAnimation(context,xx.xml)创建Animation实例,然后为指定的View实例指定并开始动画.startAnimation(Animation实例)

5.还可为Animation实例创建监听器,用setAnimationListener(new onAnimationStart/End/Repeat(Animation实例))

 

帧动画

对应AnimationDrawable,在xml文件里的<animation-list>标签的<item>集里指定图片和动画时间等

使用方法是给指定view设置动画文件为背景

用view的getBackground方法获得AnimationDrawable的实例

使用实例的start()的方法开始动画

帧动画,当加载大量图片,或者图片较大时,容易OOM

 

LayoutAnimation,为ViewGroup指定子元素的入场动画

使用方法:

1.创建子元素动画文件

2.创建xml文件,根标签为<layoutAnimation>;

在<layoutAnimation>里指定子元素动画的相关属性,比如delay、animationOrder等;

引进给子元素的动画文件animation = “@anim/xxx”

3.在ViewGroup里引进LayoutAnimation动画文件layoutAnimation = “@anim/xxx”

 

Activity切换效果:在startActivity和finish之后使用overridePendingTransition(intenterAnim, int exitAnim)

 

属性动画

属性动画的对象不仅仅是view,是任意对象

常用的类ValueAnimator、ObjectAnimator、AnimatorSet

插值器:

根据时间流逝的百分比来计算出属性值改变的百分比,就是根据时间差计算路程差,所以一般用于设置属性值变化的速度

常用的有LinearInterpolator、DecelerateInterpolator、AccelerateDecelerateInterpolator(两边慢中间快)

估值器:

根据当前属性改变的百分比来计算改变后的属性值,也就是根据距离差计算下一个距离

常用的有IntEvaluator、FloatEvaluator、ArgbEvaluator

 

使用属性动画的对象,要求具备2个条件:object必须有setAbc方法;对setAbc做改变时必须有UI改变

属性动画在Activity退出时必须保证关闭,尤其是循环动画,不然容易造成内存泄漏

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值