Android属性动画实战教程开篇
本系列博客会分俩篇
本篇博客主要是会介绍属性动画代码使用和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属性动画实战教程开篇相关推荐
- Android属性动画 实战-视差动画
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118976533 本文出自[赵彦军的博客] 文章目录 效果图 实例代码 效果图 先看 ...
- Android属性动画 ObjectAnimator
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118709616 本文出自[赵彦军的博客] 文章目录 ObjectAnimator ...
- Android属性动画深入分析:让你成为动画牛人
转载请注明出处: http://blog.csdn.net/singwhatiwanna/article/details/17841165 前言 感谢你阅读本文,我坚信读完本文肯定不会让你失望的.想要 ...
- android动画封装,Android属性动画封装,快速构建动画
Android实现动画效果的方式主要有帧动画.补间动画.属性动画.关于安桌动画的基础知识可以查看这篇文章Android属性动画完全解析 这里我要讲的是如何快速构建出一个动画效果,如下图: 如果我们用属 ...
- (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
版权声明:本文出自郭霖的博客,转载必须注明出处. 目录(?)[-] ValueAnimator的高级用法 ObjectAnimator的高级用法 转载请注明出处:http://blog.csdn.ne ...
- android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...
大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...
- Android 系统(196)---Android 属性动画
Android 属性动画 属性动画 总结&攻略 前言 动画的使用 是 Android 开发中常用的知识 本文将详细介绍 Android 动画中 属性动画的原理 & 使用 动画类型 关于 ...
- Android 属性动画Property Animation(中)
Android 属性动画Property Animation(上)介绍了属性动画的概念以及相关的类和接口,本篇来看下具体肿么使用. ValueAnimator ValueAnimator指定整形.浮点 ...
- Android 属性动画使用(二)
首先扯点别的:晚上稍微跑了一会步,然后逛了超市,晚饭喝的南瓜粥,吃了一碗面条,今天不是太饿,现在正一边吃着葡萄一边学习,也是没谁了. 比如说,我们想要实现从0过渡到100,使用ValueAnimato ...
最新文章
- 满足实时人工智能的计算需求
- 【BZOJ2117】 [2010国家集训队]Crash的旅游计划
- Solr学习之一 --------环境搭建
- python函数与模块学习_Python函数与模块学习1
- 区块链技术怎么构架落地应用?
- JS 全局变量、局部变量(与其他语言不太一样)
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
- 专门跑顺风车真的挣钱吗?
- python判断变量相等_Python判断两个对象相等的原理
- 安装英伟达显卡旧版驱动
- oracle12c不使用cdb模式,Oracle 12c实现手工建库而非CDB及CDB创建的方法
- C# 滑块/滑杆/拖动条控件trackBar
- js颜色加深或者减淡
- 【meArm机械臂】第一篇·结构设计及搭建
- InputReader读取rawEvent解析
- 【微信小程序】wx:for的使用
- Nao机器人运行B-human代码之开始篇 2
- .\Obj\Template.axf: error: L6002U: Could not open file .\obj\core_cm3.o: No such file or directory
- (ChatGPT)429 You are being rate limited
- NEON技术粗浅认识
热门文章
- LeetCode每日一题——670. 最大交换
- 不去拼,你活着干啥?
- mysql重启时报错 /etc/my.cnf is ignored
- 基于Matlab的GUI界面封装exe文件
- 打印机墨水添加方法(三)
- 索引 - ElasticSearch基本使用
- nginx php 开启伪静态,nginx网站伪静态设置
- NFOVIew:查看NFO文件的好工具
- android togglebutton 自定义,Android自定义ToggleButton
- 【Tools】SecureCRT8.5安装和注册教程