Android:属性动画

Android:属性动画,第1张

概述属性动画是Android3.0加入的,为了弥补View动画的不足,但是Android3.0以下虽然可以使用动画兼容库但是其本质依旧是View动画View动画的不足之处动画效果单一,旋转,平移,缩放影像动画,并没有改变本身的参数,需要交互式view的时候暴露缺陷作用对象局促于View上ValueAnimator

属性动画是AndroID 3.0加入的,为了弥补VIEw动画的不足,但是AndroID 3.0以下虽然可以使用动画兼容库但是其本质依旧是VIEw动画

VIEw动画的不足之处
动画效果单一,旋转,平移,缩放
影像动画,并没有改变本身的参数,需要交互式vIEw的时候暴露缺陷
作用对象局促于VIEw上

ValueAnimator 类
先改变值,然后 手动赋值 给对象的属性从而实现动画;是 间接 对对象属性进行 *** 作;

ValueAnimator 对值进行 *** 作

ValueAnimator.ofInt(int values)ValueAnimator.offloat(float values)ValueAnimator.ofObject(int values)  需要自定义估值器

ObjectAnimator 类
先改变值,然后 自动赋值 给对象的属性从而实现动画;是 直接对对象属性进行 *** 作;

ObjectAnimator 继承自ValueAnimator类,即底层的动画实现机制是基于ValueAnimator类
ObjectAnimator 类针对的是任意对象 & 任意属性值,并不是单单针对于VIEw对象

如果需要采用ObjectAnimator 类实现动画效果,那么需要 *** 作的对象就必须有该属性的set() & get()
同理,针对上述另外的三种基本动画效果,VIEw 也存在着setRotation()、getRotation()、setTranslationX()、getTranslationX()、setScaleY()、getScaleY()等set() & get() 。
AnimatorSet 类 可组合动画 实现方式有 XML设置 / Java代码设置

AnimatorSet.play(Animator anim) :播放当前动画 AnimatorSet.after(long delay) :将现有动画延迟x毫秒后执行 AnimatorSet.with(Animator anim) :将现有动画和传入的动画同时执行AnimatorSet.after(Animator anim) :将现有动画插入到传入的动画之后执行 AnimatorSet.before(Animator anim) : 将现有动画插入到传入的动画之前执行

Java代码实现

// 步骤1:设置需要组合的动画效果 ObjectAnimator translation = ObjectAnimator.offloat(mbutton, "translationX", curTranslationX, 300,curTranslationX); // 平移动画 ObjectAnimator rotate = ObjectAnimator.offloat(mbutton, "rotation", 0f, 360f); // 旋转动画 ObjectAnimator Alpha = ObjectAnimator.offloat(mbutton, "Alpha", 1f, 0f, 1f); // 透明度动画 // 步骤2:创建组合动画的对象 AnimatorSet animset = new AnimatorSet(); // 步骤3:根据需求组合动画 animset.play(translation).with(rotate).before(Alpha); animset.setDuration(5000); // 步骤4:启动动画 animset.start();

xml实现

在value的目录下创建animator 资源文件夹 ,在此文件夹中创建XML文件
ordering是动画播放方式 :together和sequentially 代表同时和顺序执行俩个方式

<?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ordering="sequentially">    <set androID:ordering="together">        <objectAnimator androID:propertyname="translationX" androID:valueFrom="0dp" androID:valueto="300dp" androID:duration="3000" androID:valueType="floatType"/>        <objectAnimator androID:propertyname="rotation" androID:valueFrom="0" androID:valueto="360" androID:duration="2000" androID:valueType="floatType"/>    </set>    <set androID:ordering="sequentially">        <objectAnimator androID:propertyname="Alpha" androID:valueFrom="1" androID:valueto="0" androID:duration="500" androID:valueType="floatType"/>        <objectAnimator androID:propertyname="Alpha" androID:valueFrom="0" androID:valueto="1" androID:duration="500" androID:valueType="floatType"/>    </set></set>
总结

以上是内存溢出为你收集整理的Android:属性动画全部内容,希望文章能够帮你解决Android:属性动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存