1. Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,
不同Activity切换,不同View之间切换,Layout, 显示列表,显示表格都可以使用动画效果
android 2.2之前 Android 中 Animation 资源可以分为两种:
Tween Animation: 对单个图像进行各种变换(缩放,平移,旋转等)来实现动画。
Frame Animation :由一组图像顺序显示显示动画,顺序播放事先做好的图像,如电影。
android 3.0(API level 11)后Animation 增加了property animation.
2.tween animation
tween animation又称view animation,其只能应用与View对象。
View Animation就是一系列View形状的变换,如大小的缩放,透明度的改变,位置的改变,动画的定义既可以用代码定义也可以用XML定义
用xml定义View Animation,放在/res/anim文件夹下,
3. Property Animation
属性动画,这个是在Android 3.0中才引进的,而且是官方建议优先使用的方法,其更灵活,提供更多的特性,而且不像View Animation只能用在view上,属性动画可以即应用于view也可以应用与非view.
Property Animation中,改变的是对象的实际属性,如Button的缩放,Button的位置与大小属性值都改变了。而且Property Animation不止可以应用于View,还可以应用于任何对象。Property Animation只是表示一个值在一段时间内的改变,当值改变时要做什么事情完全是你自己决定的。
在Property Animation中,可以对动画应用以下属性:
Duration:动画的持续时间
TimeInterpolation:属性值的计算方式,如先快后慢
TypeEvaluator:根据属性的开始、结束值与TimeInterpolation计算出的因子计算出当前时间的属性值
Repeat Country and behavoir:重复次数与方式,如播放3次、5次、无限循环,可以此动画一直重复,或播放完时再反向播放
Animation sets:动画集合,即可以同时对一个对象应用几个动画,这些动画可以同时播放也可以对不同动画设置不同开始偏移
Frame refreash delay:多少时间刷新一次,即每隔多少时间计算一次属性值,默认为10ms,最终刷新时间还受系统进程调度与硬件的影响
4. tween animation原理分析
Animation 和 Transformation,这两个类是实现动画的主要的类,Animation 中主要定义了动画的一些属性比如开始时间、持续时间、是否重复播放等,这个类主要有两个重要的函数:getTransformation 和 applyTransformation,在 getTransformation 中 Animation 会根据动画的属性来产生一系列的差值点,然后将这些差值点传给 applyTransformation,这个函数将根据这些点来生成不同的 Transformation,Transformation
中包含一个矩阵和 alpha 值,矩阵是用来做平移、旋转和缩放动画的,而 alpha 值是用来做 alpha 动画的(简单理解的话,alpha 动画相当于不断变换透明度或颜色来实现动画),以上面的平移矩阵为例子,当调用 dispatchDraw 时会调用 getTransformation 来得到当前的 Transformation,所以具体的动画只需要重载 applyTransformation 这个函数即可,
用户可以定义自己的动画类,只需要继承 Animation 类,然后重载 applyTransformation 这个函数。对动画来说其行为主要靠差值点来决定的,比如,我们想开始动画是逐渐加快的或者逐渐变慢的,或者先快后慢的,或者是匀速的,这些功能的实现主要是靠差值函数来实现的,Android 提供了 一个 Interpolator 的基类,你要实现什么样的速度可以重载其函数 getInterpolation,在 Animation 的 getTransformation 中生成差值点时,会用到这个函数。
分享到:
相关推荐
android的四种基本动画,缩放,平移,渐隐,旋转
本文档总结说明了android动画框架的设计及使用
FrameAnimation 用TextureView或SurfaceView 高性能播放帧动画,避免在很多帧的情况下使用AnimationDrawable带来的OOM和卡顿问题。 华为 mate 20X 1920×1080 24bit color JPG 201frames 24fps 测试效果 download ...
本文实例讲述了Android编程之Animation动画用法。分享给大家供大家参考,具体如下: Animations 一、Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行...
Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希望View有...
本篇难度较大,慎入 也许可以先去看总结在来一起分析 从我们写的开始进入: fun click(view: View) { val textView = findViewById(R.id.tv) val animator = ObjectAnimator.ofFloat(textView,scale, 0f, 1f) ...
动画Animation 图标Icon 图片框架Image 图表Chart 完整开源项目Project 布局Layout 开发框架Framework 弹框Dialog 按钮Button 文本Label 特效Effect 网络框架Network 自定义控件Custom (其他分类找不到的,大部分都...
【Android系统原理与开发要点详解】/底层 应用 框架 Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程)...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
我们都知道,漂亮的用户界面是衡量一款应用”好坏”很重要的依据,因为人...在Android中我们一般将动画分为两类,一类是View Animation(视图动画),一类是Property Animation,当然也有说分为三种,Frame Animation,Twe
第5章 android游戏开发框架 5.1 制定计划 5.2 androidfileio类 5.3 androidaudio、androidsound和androidmusic 5.4 androidinput和accelerometer-handler 5.4.1 accelerometerhandler:手机哪一面朝上 ...
60个Android开发精典案例 Android软件源码: 2-1(Activity生命周期) 3-1(Button与点击监听器) 3-10-1(列表之ArrayAdapter适配) 3-10-2(列表之SimpleAdapter适配) 3-11(Dialog对话框) 3-12-5(Activity跳转与操作) 3-12...
XAnimator一个动画框架,可根据ScrollView或HorizontalScrollView中的滚动距离设置相应子视图的动画效果。使用在存储库末尾将其添加到您的root build.gradle中: allprojects { repositories { //... maven { ...
7.1 Android View动画框架 163 7.1.1 透明度动画 163 7.1.2 旋转动画 163 7.1.3 位移动画 164 7.1.4 缩放动画 164 7.1.5 动画集合 164 7.2 Android属性动画分析 165 7.2.1 ObjectAnimator 166 7.2.2 ...
demo框架如下: 1、闪屏的布局如下:其实就是一张背景图 <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width=match_...
第5章 Android游戏开发框架 145 5.1 制定计划 145 5.2 AndroidFileIO类 146 5.3 AndroidAudio、AndroidSound 和AndroidMusic 147 5.4 AndroidInput和Accelerometer- Handler 152 5.4.1 ...
1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK 1.2.3 配置源代码 1.2.4 创建AVD 1.3 Android模拟器 1.3.1 ADB工具 1.3.2 其它常用工具 1.4 本章小结 第2章 应用...
适用于Android的运动驱动动画框架。 backboard是backboard之上的框架,通过将与视图和动作耦合在一起,使其更易于使用。 backboard-example是一个Android应用,其中包含Backboard制作的一些动画演示。 目录 用法 ...
一个Android库,提供了一种显示任何视图框架的简便方法。 Koleton的首字母缩写是: Ko tlin ske leton 。 用 :red_heart: 由 。安装您可以使用Maven和Gradle并安装Koleton : // In your module's `build.gradle....
视频名称 源码 ----------------------...复杂UI界面设计、GPS与GoogleMap、自定义View、Ubuntu Linux下使用C语言面向底层开发、通过JNI进行底层组件调用、图形与OpenGl ES、界面特效、下载修改及编绎Android框架代码。