首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:属性动画的简单使用

属性动画

属性动画能弥补逐帧动画和补间动画的缺点:

补间动画 只能够作用在视图View上,即只可以对一个Button、TextView、甚至是LinearLayout、或者其它继承自View的组件进行动画操作,但无法对非View的对象进行动画操作

补间动画只是改变了View的视觉效果,而不会真正去改变View的属性。

补间动画只能实现平移、旋转、缩放 & 透明度这些简单的动画需求

特点

属性动画对作用对象进行了扩展,不再局限于View对象。

使用方法

属性动画有两个非常重要的类:ValueAnimator 类 & ObjectAnimator 类

ValueAnimator类

定义:属性动画机制中 最核心的一个类

原理:通过不断控制值的变化,再不断手动赋给对象的属性,从而实现动画效果。

ValueAnimator类中有3个重要方法:

ValueAnimator.ofInt(int values)

ValueAnimator.ofFloat(float values)

ValueAnimator.ofObject(int values)

ValueAnimator.ofInt(int values)

作用:将初始值 以整型数值的形式 过渡到结束值

操作值的方式分为XML设置和代码设置

值得注意的是,在实际开发中,建议使用代码实现属性动画:因为很多时候属性的起始值是无法提前确定的(无法使用XML设置),因此在这只介绍代码设置方式。

ValueAnimator.ofFloat(float values)和ValueAnimator.ofObject(int values)与上面的用法一样,触类旁通。

ObjectAnimator

直接对对象的属性值进行改变操作,从而实现动画效果

原理:通过不断控制值的变化,再不断自动赋给对象的属性,从而实现动画效果。

下面将进行实例操作:

透明度

旋转

平移

缩放

上面的例子中,使用了属性动画最基本的四种动画效果,其实ObjectAnimator.ofFloat()还可传人各种属性:

实现组合动画功能主要需要借助AnimatorSet这个类,这个类提供了一个play()方法,如果向这个方法中传入一个Animator对象(ValueAnimator或ObjectAnimator)将会返回一个AnimatorSet.Builder的实例,AnimatorSet.Builder中包括以下四个方法:

after(Animator anim) 将现有动画插入到传入的动画之后执行

after(long delay) 将现有动画延迟指定毫秒后执行

before(Animator anim) 将现有动画插入到传入的动画之前执行

with(Animator anim) 将现有动画和传入的动画同时执行

Animator监听器

在很多时候,我们希望可以监听到动画的各种事件,比如动画何时开始,何时结束,然后在开始或者结束的时候去执行一些逻辑处理。这个功能是完全可以实现的,Animator类当中提供了一个addListener()方法,这个方法接收一个AnimatorListener。

但很多时候,我们并不需要监听动画的所有时刻,因此出现了AnimatorListenerAdapter。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190827A09F0200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券