Android 开源动画框架:NineOldAndroids

介绍

Android 平台提供两种动画系统:Property Animation(Android 3.0引入)和View Animation。这两种动画都可供选择,但是Property Animation是首选,因为它更灵活并且提供更强大的功能。除此之外,你还可以使用Drawable Animation,它允许你加载一系列图片资源并且按照指定的顺序一帧一帧的播放。
Property Animation
Introduced in Android 3.0 (API level 11), the property animation system lets you animate properties of any object, including ones that are not rendered to the screen. The system is extensible and lets you animate properties of custom types as well.
译文:在Android 3.0( API 11)被引入,Property Animation让你可以让任何对象做动画,包括那些没有被渲染到屏幕上的对象。Property Animation 是可扩展的,同时支持对象的自定义属性类型动画。
View Animation
View Animation is the older system and can only be used for Views. It is relatively easy to setup and offers enough capabilities to meet many application‘s needs.
译文:View Animation 是旧的动画系统并且只能使用在View对象上。它使用比较简单,同时提供足够的动画功能来满足许多应用的需要。
Drawable Animation
Drawable animation involves displaying Drawable resources one after another, like a roll of film. This method of animation is useful if you want to animate things that are easier to represent with Drawable resources, such as a progression of bitmaps.

Drawable animation 一张接一张的去显示一系列图片资源,像一卷电影胶卷。

Android property animation 只有在Android 3.0(API 11)以上版本可用,不过好在已经有开源大神帮我们解决这个问题了。这个项目就是NineOldAndroids

NineOldAndroids将Honeycomb animation API 移植到了整个Android Version平台,使得ValueAnimator、ObjectAnimator等Honeycomb animation API 能不改一行代码,只修改import的包名就完全兼容到新的api。

Usage

如果你熟悉Honeycomb animation API 的话,那么使用就非常简单了,只需要将import android.animation.ObjectAnimator替换为 com.nineoldandroids.animation.ObjectAnimator 即可。

?


1

2

3

4

5

6

ValueAnimator colorAnim = ObjectAnimator.ofInt(this"backgroundColor"/*Red*/0xFFFF8080, /*Blue*/0xFF8080FF); 

colorAnim.setDuration(3000); 

colorAnim.setEvaluator(new ArgbEvaluator()); 

colorAnim.setRepeatCount(ValueAnimator.INFINITE); 

colorAnim.setRepeatMode(ValueAnimator.REVERSE); 

colorAnim.start();

NineOldAndroids 库几乎完全兼容最新的Android 3.0 Property Animation API

?


1

2

3

4

5

6

7

8

9

10

11

12

AnimatorSet set = new AnimatorSet(); 

set.playTogether( 

    ObjectAnimator.ofFloat(myView, "rotationX"0360), 

    ObjectAnimator.ofFloat(myView, "rotationY"0180), 

    ObjectAnimator.ofFloat(myView, "rotation"0, -90), 

    ObjectAnimator.ofFloat(myView, "translationX"090), 

    ObjectAnimator.ofFloat(myView, "translationY"090), 

    ObjectAnimator.ofFloat(myView, "scaleX"11.5f), 

    ObjectAnimator.ofFloat(myView, "scaleY"10.5f), 

    ObjectAnimator.ofFloat(myView, "alpha"10.25f, 1

); 

set.setDuration(5 1000).start();

 

时间: 2024-10-07 16:54:15

Android 开源动画框架:NineOldAndroids的相关文章

android开源项目框架大全:《IT蓝豹》

android开源项目框架大全: 1.多页切换TabHost9 高仿网易云音乐客户端的Home页面切换Tabhost 高仿网易云音乐客户端的Home页面切换Tabhost,并且三角形是透明的,实现方式,自定义AnimTabsView继承 RelativeLayout 里面对当前选中的item 处理 三角形变成透明效果,即在onDraw 里面对三角形图片经行透明度处理,AnimTabsView提供 setOnAnimTabsItemViewChangeListener方法的onChange()用来

Android开源测试框架学习

近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java代码,采用传统的Junit测试,开发人员通常会编写重要接口和函数的白盒测试代码,不做过多讨论. 但因Android的特殊运行机制(Dalvik虚拟机),其中存在Application.Activity.Service等特殊组件,而这些组件都涉及到生命周期管理的问题. 为了对这些组件进行测试,Goog

Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

前言 我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 View 显示的大小,而没有改变 View 的响应区域.这时以 ObjectAnimator.ValueAnimator 为代表的属性动画也就应运而生了. 简单效果 工作原理 属性动画字如其名,是通过改变 View 的属性值来改变控件的形态,说白了就是通过反射技术来获取控件的一些属性如宽度.高度等的

android开源ORM框架OrmLite使用教程

OrmLite是一个轻量级的对象关系映射包,由Java语言开发.Github上有ormlite-core,ormlite-android,ormlite-examples,分别是主要库,android依赖和一些教程. 一.准备 为了在android上使用OrmLite,我们需要下载ormlite-core.jar和ormlite-android.jar放到项目目录下,然后: 1.创建一个类继承OrmLiteSqliteOpenHelper,实现两个抽象方法onCreate(SQLiteDatab

Android开源框架 Android-Universal-Image-Loader

Android开源框架Universal-Image-Loader就像图片加载守护者,为我们提供了丰富的功能特性: (1)多线程加载图像(异步或同步): (2)高度可定制化imageloader配置(线程池.图片下载器.解码器.内存和磁盘缓存.显示图像选项等): (3)每一个显示图像有许多自定义选项(存根图片,缓存开关,解码选项,位图处理和显示等): (4)支持内存和磁盘上的图像缓存(设备的文件系统和SD卡): (5)监听加载过程(包括下载进度): 下来我们详解如何配置使用Universal-I

android开源框架

1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)  JSON,图像等的异步下载: (2)  网络请求的排序(scheduling) (3)  网络请求的优先级处理 (4)  缓存 (5)  多级别取消请求 (6)  和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2.android-async-http  项目地址:https://github.com/loopj/android-asy

常用Android开源框架

1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)  JSON,图像等的异步下载: (2)  网络请求的排序(scheduling) (3)  网络请求的优先级处理 (4)  缓存 (5)  多级别取消请求 (6)  和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2.android-async-http 项目地址:https://github.com/loopj/android-asyn

6个值得推荐的Android开源框架简介(转)

虽然我们在做app的时候并不一定用到框架,但是一些好框架的思想是非常有学习价值的 1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)  JSON,图像等的异步下载: (2)  网络请求的排序(scheduling) (3)  网络请求的优先级处理 (4)  缓存 (5)  多级别取消请求 (6)  和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2.android-async-http 项

Android开源框架Afinal第一篇——揭开圣女的面纱

Android开源框架Afinal第一篇——揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在github的地址:https://github.com/yangfuhai/afinal Afinal这个框架主要分4块: 1.FinalDB模块:android中的orm框架,一行代码就可以进行增删改查.支持一对多,多对一等查询. 2.FinalActivity模块:android中的ioc框架