`
jiagou
  • 浏览: 2531255 次
文章分类
社区版块
存档分类
最新评论

Android Animation 框架

 
阅读更多


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四种动画框架Demo

    android的四种基本动画,缩放,平移,渐隐,旋转

    android 4.0 Animator 框架详解

    本文档总结说明了android动画框架的设计及使用

    FrameAnimation:适用于Android的高性能帧动画库

    FrameAnimation 用TextureView或SurfaceView 高性能播放帧动画,避免在很多帧的情况下使用AnimationDrawable带来的OOM和卡顿问题。 华为 mate 20X 1920×1080 24bit color JPG 201frames 24fps 测试效果 download ...

    Android编程之Animation动画详解

    本文实例讲述了Android编程之Animation动画用法。分享给大家供大家参考,具体如下: Animations 一、Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行...

    Android中Property Animation属性动画编写的实例教程

    Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希望View有...

    Android动画(四)动画框架源码分析

    本篇难度较大,慎入 也许可以先去看总结在来一起分析 从我们写的开始进入: fun click(view: View) { val textView = findViewById(R.id.tv) val animator = ObjectAnimator.ofFloat(textView,scale, 0f, 1f) ...

    Android代码-Android开源代码大全

    动画Animation 图标Icon 图片框架Image 图表Chart 完整开源项目Project 布局Layout 开发框架Framework 弹框Dialog 按钮Button 文本Label 特效Effect 网络框架Network 自定义控件Custom (其他分类找不到的,大部分都...

    android开发资料大全

    【Android系统原理与开发要点详解】/底层 应用 框架 Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程)...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android动画实现原理和代码

    我们都知道,漂亮的用户界面是衡量一款应用”好坏”很重要的依据,因为人...在Android中我们一般将动画分为两类,一类是View Animation(视图动画),一类是Property Animation,当然也有说分为三种,Frame Animation,Twe

    Android 4游戏编程入门经典

    第5章 android游戏开发框架  5.1 制定计划  5.2 androidfileio类  5.3 androidaudio、androidsound和androidmusic  5.4 androidinput和accelerometer-handler  5.4.1 accelerometerhandler:手机哪一面朝上  ...

    60个Android开发精典案例 Android软件源码.zip

    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:animation动画框架(一个动画框架)

    XAnimator一个动画框架,可根据ScrollView或Horizo​​ntalScrollView中的滚动距离设置相应子视图的动画效果。使用在存储库末尾将其添加到您的root build.gradle中: allprojects { repositories { //... maven { ...

    android群雄传

    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 ...

    Android实现应用程序的闪屏效果

    demo框架如下: 1、闪屏的布局如下:其实就是一张背景图 <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width=match_...

    android游戏编程入门

     第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 ...

    Android典型技术模块开发详解

    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的运动驱动动画框架

    适用于Android的运动驱动动画框架。 backboard是backboard之上的框架,通过将与视图和动作耦合在一起,使其更易于使用。 backboard-example是一个Android应用,其中包含Backboard制作的一些动画演示。 目录 用法 ...

    koleton:最简单的库,可在Android应用程序中显示骨架屏幕

    一个Android库,提供了一种显示任何视图框架的简便方法。 Koleton的首字母缩写是: Ko tlin ske leton 。 用 :red_heart: 由 。安装您可以使用Maven和Gradle并安装Koleton : // In your module's `build.gradle....

    8天快速掌握Android教程源码

    视频名称 源码 ----------------------...复杂UI界面设计、GPS与GoogleMap、自定义View、Ubuntu Linux下使用C语言面向底层开发、通过JNI进行底层组件调用、图形与OpenGl ES、界面特效、下载修改及编绎Android框架代码。

Global site tag (gtag.js) - Google Analytics