Android应用中实现属性动画的原理是什么-创新互联

今天就跟大家聊聊有关Android应用中实现属性动画的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联建站企业建站,十载网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都做网站、网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

Android动画概述:

Android 的动画可以分为三种:View 动画、帧动画和属性动画,View 动画通过对场景里的对象不断做图像变化(平移、缩放、旋转、透明度)从而产生动画效果,View 动画支持自定义。帧动画通过顺序播放一系列图像产生动画效果,可以简单理解为图片切换动画,图片过大会导致 OOM。属性动画通过动态的改变对象的属性从而达到动画效果,属性动画为API 11的新特性,在低版本需要通过兼容库来使用它。

属性动画:

属性动画可以对任意对象的属性进行动画而不仅仅是 View,在一个时间间隔内可以完成对象从一个属性值到另一个属性值的改变。因此属性动画几乎是无所不能的,只要对象有这个属性,它都能实现动画效果。、

使用:

属性动画中有 ValueAnimator 、ObjectAnimator 和 AnimatorSet 等概念,其中 ObjectAnimator 继承自 ValueAnimator,用来是实现一个属性动画,AnimatorSet 是动画集合,可以定义一组动画,它们使用起来是及其简单的,在此不再举例。属性动画除了通过代码实现以外,同View动画一样,也可以通过XML来定义,属性动画需要定义在res/animator目录下,其中的 set、objectAnimator 和 animator 标签分别对应 AnimatorSet、ObjectAnimator 和 ValueAnimator 。尽管属性动画可以通过XML来实现,但在实际开发中往往会采用代码来实现,因为很多时候一个属性的起始值是无法提前确定的。

插值器和估值器:

TimeInterpolator 译为时间插值器,它的作用是根据时间流逝的百分比来计算出当前属性值改变的百分比,系统预置的有 LinearInterpolator (线性插值器:匀速动画)、 AccelerateDecelerateInterpolator (加速减速插值器:动画两头慢中间快)和 DecelerateInterpolator (减速插值器:动画越来越慢)等。

TypeEvaluator 译为类型估值算法,也叫估值器,它的作用是根据当前属性改变的百分比来计算改变后的属性值,系统预置的有 IntEvaluator (针对整型属性)、 FloatEvaluator (针对浮点型属性)和ArgbEvaluator (针对 Color 属性)。属性动画中的插值器( Interpolator )和估值器( TypeEvaluator )很重要,它们是实现非匀速动画的重要手段。

属性动画的监听器:

属性动画提供了监听器来监听动画的播放过程,主要有AnimatorUpdateListenerAnimatorListener 。AnimatorListener 可以监听动画的开始、结束、取消以及重复播放 ,同时为了方便开发,系统还提供了 AnimatorListenerAdapter 这个类,他是 AnimatorListener 的适配器类, 可以有选择的实现这四个监听方法。AnimatorUpdateListener 比较特殊,他会监听整个动画过程, 动画是由许多帧组成的,每播放一帧对应监听方法就会被调用一次。

对任意属性做动画:

属性动画可以对任意属性添加动画效果,假如我们要给一个 button 加一个动画,让这个 button 的宽度增加 100px,我们可能会这样写:

@Override
public void onClick(View v){

   ObjectAnimator.ofInt(v,"width",100).setDuration(1000).start();

}

当前文章:Android应用中实现属性动画的原理是什么-创新互联
文章起源:https://www.cdcxhl.com/article4/djgjoe.html

成都网站建设公司_创新互联,为您提供企业网站制作商城网站网页设计公司网站导航网站维护服务器托管

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设