关于github上开源nineoldandroids兼容动画的笔记

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!

复制去Google翻译翻译结果

playSequentially

时间: 2024-10-12 15:51:06

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

Android 类似于ArcMenu(github上开源项目)的自定义多个按钮视图

最近的项目中有个比较好的开源的多个分享按钮的自定义视图,感觉比较好,所以就研究了下,写了下来.其实这个demo类似于github上开源项目ArcMenu开源项目,项目下载地址为:https://github.com/daCapricorn/ArcMenu. 实现效果图: 1.点击该按钮,五个按钮飞入屏幕: 2.点击五个按钮其中的一个后,改按钮放到直至消失,其余的按钮变小直至消失. 体验感还是挺好的. 再次点击五个按钮飞出屏幕. 好了,下面上源码吧.比较多,但都是些自定义的空间,看两遍就能看懂啦.

OData.NET已在 GitHub上开源

OData.NET已在 GitHub上开源 微软最近已将OData .NET所有类库的源代码全部发布在GitHub上. 以下与OData相关的项目目前都已迁移到GitHub上: ODataLib EdmLib OData.NET客户端 The spatial library OData客户端代码生成器 Web API for OData RESTier C++ 服务端与客户端 Python客户端 OData4ObjC OData.NET项目目前在总共三个代码分支中进行维护:用于维护OData V

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

Foreword github是一个很火的代码托管服务网站,可能好多人都想参与一两个项目玩一玩学习一下,但由于是纯英文的网站,可能又会止步于想法上没有动手实践.接下来我就介绍一下参与github上开源项目的大致流程,以及注意的地方.当然这里不会详细介绍git的使用,看懂本文还得需要参考其他资料,学习git的相关使用方法. 大致流程 一.首先需要在github上注册账号并登陆,这个不多说了 二.安装git,到github官网下载安装包.  在这里我用的是github for windows.安装好

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

PyCharm怎么clone github上开源的项目 一.先要确保PyCharm正确的配置了Git ??如果你已经在PyCharm中配置好了Git,可以跳过此步骤,直接看下一步. ??那么怎么在PyCharm中配置Git呢? 百度搜索Git安装包,安装过程不再多说,请记住Git的安装路径: 打开PyCharm,如图1-1所示:  图1-1 点击右下角的"Configure",如图1-2所示:  图1-2 点击"Settings", 出现如图1-3所示界面:  图1

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

本文来自微软开源.NET 的一篇公告 ,文中阐述了微软为何选择在 Github 开源.NET,以及微软对开源和开源社区方面的认识的变迁. 对于.NET来说,今天(2014/11/12)是个大日子! 我们很高兴宣布.NET核心将要开源,包括运行时环境和框架类库. 这是我们为开源努力的自然结果,我们已经开源了主要的编译器(C#,VB.F#),还有ASP.NET: C# 和 VB ("Roslyn") Visual F# 工具集 ASP.NET 5 实体框架 我们通过将范围扩展到.NET运行

github上开源项目MJRefresh自定义刷新控件

前言:在项目开发过程中经常有需要进行刷新操作,MJ博主开源的MJRefresh为我们节省了大量的时间.只需要几行代码就可给UITableview,UICollectionview,UISCrollview,UIWebview集成上拉或下拉操作.更强大的是自定义功能,无论产品经理要什么上拉下拉动态效果,MJRefresh带你装逼带你酷炫下拉刷新.先来看看自定义下拉的动态效果. 1 利用cocoapods安装MJRefresh,如果不明白cocoapods使用方法,请参照cocopods安装和使用教

github上开源程序

Python: celery       图形化进程管理

Fragment为载体可自动布局的CardView(GitHub上写开源项目初体验)

前些天一直在看Android5.0 的Material Desgin,里面新增了一个新的控件——CardView.从Google这次直接提供了CardView控件就可以看出它已经变的非常流行了. 在此之前我们可以通过设置圆角边框来模拟CardView效果,但现在既然Google已经提供了新控件就没有理由不用它了.而我之前在学自定义布局的时候写了一个CardView自动布局的小Demo——ANDROID自定义视图——仿瀑布布局(附源码) 刚好最近正好在学Git,而且也想试试CardView在5.0

GitHub 上 57 款最流行的开源深度学习项目

转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github 本文整理了 GitHub 上最流行的 57 款深度学习项目(按 stars 排名).最后更新:2016.08.09 1.TensorFlow 使用数据流图计算可扩展机器学习问题 TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow 的表现比第一代的 DistBelief 快了2