github上面有个样例非常好的列举了NineOldAndroids兼容动画的使用方法。下载了下来然后执行測试了下:

由于要引用nineoldandroids的项目,我这里直接把它的源码拷贝进去了,用做測试。

android 11版本号也有ObjectAnimator动画属性,可是不能兼容10版本号甚至8的版本号号,国内这个版本号号的手机份额还是不小的。

所以兼容也必须仅仅实用这个开源的了。

 static {
PROXY_PROPERTIES.put("alpha", PreHoneycombCompat.ALPHA);
PROXY_PROPERTIES.put("pivotX", PreHoneycombCompat.PIVOT_X);
PROXY_PROPERTIES.put("pivotY", PreHoneycombCompat.PIVOT_Y);
PROXY_PROPERTIES.put("translationX", PreHoneycombCompat.TRANSLATION_X);
PROXY_PROPERTIES.put("translationY", PreHoneycombCompat.TRANSLATION_Y);
PROXY_PROPERTIES.put("rotation", PreHoneycombCompat.ROTATION);
PROXY_PROPERTIES.put("rotationX", PreHoneycombCompat.ROTATION_X);
PROXY_PROPERTIES.put("rotationY", PreHoneycombCompat.ROTATION_Y);
PROXY_PROPERTIES.put("scaleX", PreHoneycombCompat.SCALE_X);
PROXY_PROPERTIES.put("scaleY", PreHoneycombCompat.SCALE_Y);
PROXY_PROPERTIES.put("scrollX", PreHoneycombCompat.SCROLL_X);
PROXY_PROPERTIES.put("scrollY", PreHoneycombCompat.SCROLL_Y);
PROXY_PROPERTIES.put("x", PreHoneycombCompat.X);
PROXY_PROPERTIES.put("y", PreHoneycombCompat.Y);
}

支持的动画属性名有上面那些

支持上下移动的动画实例:

@Override
protected void setupAnimation(View view) {
// TODO Auto-generated method stub
// getAnimatorSet().playTogether(
// ObjectAnimator.ofFloat(view, "translationY", 0,-300).setDuration(500),
// ObjectAnimator.ofFloat(view, "translationY", -300,300).setDuration(900)
// );
// getAnimatorSet().play(ObjectAnimator.ofFloat(view, "translationY", 0,-300).setDuration(500));
getAnimatorSet().playSequentially(ObjectAnimator.ofFloat(view, "translationY", 0,-100).setDuration(400),
ObjectAnimator.ofFloat(view, "translationY", -100,100).setDuration(800),
ObjectAnimator.ofFloat(view, "translationY", 100,-100).setDuration(800),
ObjectAnimator.ofFloat(view, "translationY", -100,100).setDuration(800),
ObjectAnimator.ofFloat(view, "translationY", 100,0).setDuration(400));
}

也能够用以下的方法:

  @Override
protected void setupAnimation(View view) {
getAnimatorSet().playTogether(
ObjectAnimator.ofFloat(view, "translationY", 0,-100,-200,-300,-200,-100,0,100,200,300,200,100,0,
-100,-200,-300,-200,-100,0,100,200,300,200,100, 0).setDuration(4000),
ObjectAnimator.ofFloat(view, "alpha", 1, 1).setDuration(mDuration*3/2) );
}

这里的效果和上面的效果几乎相同。仅仅只是是这里切割了整段距离。能够把时间平分,

也就是用

playTogether这种方法也能够实现<pre name="code" class="java">playSequentially这种方法的效果。(播放动画队列,非常好理解)


 title = (TextView) findViewById(R.id.title);
final BaseEffects animator = Effectstype.Slidetogether.getAnimator();
final Handler handler = new Handler(new Handler.Callback() { @Override
public boolean handleMessage(Message arg0) {
// TODO Auto-generated method stub
animator.start(title);
return true;
}
});
new Thread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
while(true){
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}
}).start();

直接对单个View播放动画。如上图。

笔记先作到这里,假设有错误的,还请各位大牛批评指正。

Write the code,Change the world!

playSequentially

关于github上开源nineoldandroids兼容动画的笔记的更多相关文章

  1. 参与github上开源项目的大致流程和注意事项

    Foreword github是一个很火的代码托管服务网站,可能好多人都想参与一两个项目玩一玩学习一下,但由于是纯英文的网站,可能又会止步于想法上没有动手实践.接下来我就介绍一下参与github上开源 ...

  2. OData.NET已在 GitHub上开源

    OData.NET已在 GitHub上开源 微软最近已将OData .NET所有类库的源代码全部发布在GitHub上. 以下与OData相关的项目目前都已迁移到GitHub上: ODataLib Ed ...

  3. 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

    分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...

  4. 【转载】【技巧总结】PyCharm怎么克隆github上开源的项目

    PyCharm怎么clone github上开源的项目 一.先要确保PyCharm正确的配置了Git   如果你已经在PyCharm中配置好了Git,可以跳过此步骤,直接看下一步.   那么怎么在Py ...

  5. 如何优雅的阅读 GitHub 上开源 js 框架和库的源码

    如何优雅的阅读 GitHub 上开源 js 框架和库的源码 step 先总后分,即先了解一下啊框架的大体架构,又一个全局的认识,在选择某些和感兴趣的部分,仔细阅读,各个击破: 带着问题阅读,用到了什么 ...

  6. GitHub上开源的YOLOv5

    GitHub上开源的YOLOv5 代码地址:https://github.com/ultralytics/YOLOv5 该存储库代表Ultralytics对未来的对象检测方法的开源研究,并结合了我们在 ...

  7. Android github上开源项目、酷炫的交互动画和视觉效果地址集合

    Android上开源的酷炫的交互动画和视觉效果:http://blog.csdn.net/u013278099/article/details/50323689 Awesome-android-ui: ...

  8. 微软为何选择在 Github 上开源 .NET 核心?

    本文来自微软开源.NET 的一篇公告 ,文中阐述了微软为何选择在 Github 开源.NET,以及微软对开源和开源社区方面的认识的变迁. 对于.NET来说,今天(2014/11/12)是个大日子! 我 ...

  9. 快讯 | FireEye在GitHub上开源密码破解工具GoCrack

    近日,FireEye 开源了一款密码破解工具 GoCrack,可在多机器上部署破解任务. GoCrack 是由 FireEye’s Innovation and Custom Engineering ...

随机推荐

  1. Android HandlerThread详解

    概述 Android HandlerThread使用,自带Looper消息循环的快捷类. 详细 代码下载:http://www.demodashi.com/demo/10628.html 原文地址: ...

  2. 转载【小程序】: 微信小程序开发---应用与页面的生命周期

    App App() App() 函数用来注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等. object参数说明: 属性 类型 描述 触发时机 onLaunch Functi ...

  3. Mysql 5.7 从节点配置多线程主从复制

    Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有一个线 ...

  4. (原)Ubuntu16中安装nvidia的显卡驱动

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5638185.html part1 直接在“软件和更新-附加驱动”里面设置 安装完ubuntu16后,显 ...

  5. Word 2007 Blog Test

    MAC       方法一: 引用 sudo gedit /etc/network/interfaces 将iface eth0 inet static后面添加一行 hwaddress ether 0 ...

  6. Devexpress ASPxPivotGrid 按某列排序,以及把GrandTotal修改掉

    <div> <table width="100%" border="0" cellspacing="0" cellpadd ...

  7. OAF_OAF增删改-删除的实现(案例)

    2014-06-02 Created By BaoXinjian

  8. WM_MOUSELEAVE 和 WM_MOUSEHOVER 使用

    原文链接: http://www.cnblogs.com/weiqubo/archive/2011/04/14/2016323.html 默认情况下,窗口是不响应 WM_MOUSELEAVE 和 WM ...

  9. oracle关键字大全--注意不要乱用哦

    遇到怀疑可能使用了关键字,就来搜一搜吧 ... Oracle 关键字(保留字) 大全 其实这个东西可以在oracle 上输入一个sql语句就可以得到: select * from v$reserved ...

  10. npm 国内淘宝镜像cnpm、设置淘宝源

    1.下载和使用cnpm 某些插件很奇怪,需要用国内的镜像下载才可以 #安装淘宝镜像npm install cnpm -g --registry=https://registry.npm.taobao. ...