本系列博客会分俩篇
本篇博客主要是会介绍属性动画代码使用和xml中使用
关于View动画和属性动画的区别不做过多的介绍,当然涉及到的地方会简单的提一下。

好了废话不多说,直接上内容

首先介绍代码中使用属性动画 首先介绍几个比较重要的类
ValueAnimator
ObjectAnimator
AnimatorSet

其中ValueAnimator是一个基类,他主要是实现了属性动画值的变化,没有任何的动画效果。
ObjectAnimator继承ValueAnimator,并且实现了对对象的属性的操作,从而产生动画效果。
AnimatorSet这个类是一个可以同时执行多个动画效果的集合。

下面通过一个列子介绍,实现TextView在X轴方向的移动

ObjectAnimator translationXAnimator = ObjectAnimator.ofFloat(propertyAnim, "translationX",currentTranslationX, -propertyAnim.getWidth(), currentTranslationX);
translationXAnimator.setDuration(2000);
translationXAnimator.start();  

关于这段代码的解析

ofFloat() 参数解析

第一个参数 动画作用对象(任意对象,这地方也是属性动画区别与View动画的)
第二个参数 动画作用的属性(这个地方需要注意,在设置属性的时候,要做到俩点要求,一下内容来自Android开发艺术探索
1.设置的属性要有对应的set/get方法,否则可能无效果或者是奔溃;
2.set方法里面必须实现对属性的改变可以通过某种方式反映出来,否则无效果。
第三个参数是一个可变参数,进行指定动画的变化过程值

setDuration()

设置动画指定时间,长整形,单位 毫秒

start()

开始执行

其他api可以在博客最后下载源代码,里面有更详细的说明,以及AnimatorSet的使用

下面介绍xml中使用属性动画

这个就比较简单了直接上代码

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"android:ordering="sequentially"><objectAnimator
        android:duration="2000"android:propertyName="translationX"android:valueFrom="0"android:valueTo="250"android:valueType="floatType"android:repeatMode="reverse"android:repeatCount="2"/><objectAnimator
        android:duration="1000"android:propertyName="alpha"android:valueFrom="0"android:valueTo="1"android:valueType="floatType" /><set android:ordering="together"><objectAnimator
            android:duration="2000"android:propertyName="rotation"android:valueFrom="0"android:valueTo="360"android:valueType="floatType"/><objectAnimator
            android:duration="3000"android:propertyName="scaleX"android:valueFrom="1.0"android:valueTo="2.0"android:valueType="floatType"/></set></set>

下面关于里面几个属性进行一下简单的说明

android:ordering=”sequentially” 多个动画执行的逻辑,顺序执行,一起执行
android:propertyName=”scaleX” 指定动画操作的属性
在api19 里面添加了 android:propertyXName android:propertyYName 俩个更加细分的属性
android:duration=”2000” 指定动画执行的时间
android:repeatCount=”2” 指定动画重复执行的次数
android:repeatMode=”reverse” 指定动画重复执行的模式,俩种
1.重复
2.逆向
android:valueFrom=”1.0” 动画操作属性起始值
android:valueTo=”2.0” 动画操作属性结束值
android:valueType=”floatType” 动画操作属性变化类型

通过对比会发现,在使用属性动画的时候,通过代码实现会更加的简单实用,在xml文件中实现动画,会有好多局限,比如平移的时候位置的设置等等,所以推荐使用代码实现属性动画

还要说明的一点是个人的理解,各位看不看随便了
属性动画没有复位这一说法,View动画有。
这个地方其实可以很好的说明了View动画的局限,还有属性动画在View动画上面的优势,
因为View动画只是效果的展示,并没有实现改变View的属性,所以正常情况在执行完复位是很有必要的,不会影响界面逻辑和各种事件;
但是属性动画则不同,属性动画是通过不停的改变对象的属性,所以在执行完成后,所见即所得,没有必要复位,不会对对象有影响,如果有需要,可以在动画开启前记录下初始值,在动画结束后进行赋值操作,实现复位。(该方法来来自一位群友的建议)

给你想要的源码

Android属性动画实战教程开篇相关推荐

  1. Android属性动画 实战-视差动画

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118976533 本文出自[赵彦军的博客] 文章目录 效果图 实例代码 效果图 先看 ...

  2. Android属性动画 ObjectAnimator

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118709616 本文出自[赵彦军的博客] 文章目录 ObjectAnimator ...

  3. Android属性动画深入分析:让你成为动画牛人

    转载请注明出处: http://blog.csdn.net/singwhatiwanna/article/details/17841165 前言 感谢你阅读本文,我坚信读完本文肯定不会让你失望的.想要 ...

  4. android动画封装,Android属性动画封装,快速构建动画

    Android实现动画效果的方式主要有帧动画.补间动画.属性动画.关于安桌动画的基础知识可以查看这篇文章Android属性动画完全解析 这里我要讲的是如何快速构建出一个动画效果,如下图: 如果我们用属 ...

  5. (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

    版权声明:本文出自郭霖的博客,转载必须注明出处. 目录(?)[-] ValueAnimator的高级用法 ObjectAnimator的高级用法 转载请注明出处:http://blog.csdn.ne ...

  6. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...

    大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...

  7. Android 系统(196)---Android 属性动画

    Android 属性动画 属性动画 总结&攻略 前言 动画的使用 是 Android 开发中常用的知识 本文将详细介绍 Android 动画中 属性动画的原理 & 使用 动画类型 关于 ...

  8. Android 属性动画Property Animation(中)

    Android 属性动画Property Animation(上)介绍了属性动画的概念以及相关的类和接口,本篇来看下具体肿么使用. ValueAnimator ValueAnimator指定整形.浮点 ...

  9. Android 属性动画使用(二)

    首先扯点别的:晚上稍微跑了一会步,然后逛了超市,晚饭喝的南瓜粥,吃了一碗面条,今天不是太饿,现在正一边吃着葡萄一边学习,也是没谁了. 比如说,我们想要实现从0过渡到100,使用ValueAnimato ...

最新文章

  1. 满足实时人工智能的计算需求
  2. 【BZOJ2117】 [2010国家集训队]Crash的旅游计划
  3. Solr学习之一 --------环境搭建
  4. python函数与模块学习_Python函数与模块学习1
  5. 区块链技术怎么构架落地应用?
  6. JS 全局变量、局部变量(与其他语言不太一样)
  7. 【Android开发—智能家居系列】(三):手机连接WIFI模块
  8. 专门跑顺风车真的挣钱吗?
  9. python判断变量相等_Python判断两个对象相等的原理
  10. 安装英伟达显卡旧版驱动
  11. oracle12c不使用cdb模式,Oracle 12c实现手工建库而非CDB及CDB创建的方法
  12. C# 滑块/滑杆/拖动条控件trackBar
  13. js颜色加深或者减淡
  14. 【meArm机械臂】第一篇·结构设计及搭建
  15. InputReader读取rawEvent解析
  16. 【微信小程序】wx:for的使用
  17. Nao机器人运行B-human代码之开始篇 2
  18. .\Obj\Template.axf: error: L6002U: Could not open file .\obj\core_cm3.o: No such file or directory
  19. (ChatGPT)429 You are being rate limited
  20. NEON技术粗浅认识

热门文章

  1. LeetCode每日一题——670. 最大交换
  2. 不去拼,你活着干啥?
  3. mysql重启时报错 /etc/my.cnf is ignored
  4. 基于Matlab的GUI界面封装exe文件
  5. 打印机墨水添加方法(三)
  6. 索引 - ElasticSearch基本使用
  7. nginx php 开启伪静态,nginx网站伪静态设置
  8. NFOVIew:查看NFO文件的好工具
  9. android togglebutton 自定义,Android自定义ToggleButton
  10. 【Tools】SecureCRT8.5安装和注册教程