属性动画PropertyAnimation 小试牛刀
来源:互联网 发布:原来淘宝流量下滑 编辑:程序博客网 时间:2024/06/06 14:13
最近看推酷,这几天的主题可以出一张专辑了,名字就叫属性动画之过年大团圆。开个玩笑罢了。
之前都是使用ViewAnimation,如果你不知道什么是viewAnimation,好吧,基本上引用它的语句是这样的形式view.startAnimation(xxoo); (现在知道了么?)
好了,言归正传,什么是属性动画?属性动画就是通过改变属性值是来实现动画效果,比如alpha scaleX scaleY translationX等等
相关类型在下边,今天主要说ObjectAnimator,为毛?因为简单粗暴… …
1. ObjectAnimator 动画的执行类
2. ValueAnimator 动画的执行类
3. AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等。
4. AnimatorInflater 用户加载属性动画的xml文件
5. PropertyValueHolder 其实也是个动画集合,关于跟AnimatorSet的区别,一会说
随便在布局文件整一张图片,加一个点击时的方法,方法如下
public void propAnim(final View view){ ObjectAnimator animator = ObjectAnimator .ofFloat(view, "translationX", 0f,50f)//rotationY 以Y轴为基准开始旋转 .setDuration(1000); animator.start(); }
点完,顿时觉得头不疼了,腰不酸了,腿脚也麻利了吧。
这是最简单的一种,仅仅是旋转。现在要实现 alpha scale 透明度和大小两个方面的变化呢?
上面不是写了一个AnimatorSet 么,就是它了。
//通过AnimatiorSet来设计同步执行的多个属性动画 ObjectAnimator alpha= ObjectAnimator.ofFloat(imageView, "alpha", 1.0F, 0.5F);// 透明度 ObjectAnimator scaleX= ObjectAnimator.ofFloat(imageView, "scaleX", 1.0F, 0.50F);// 水平方向 ObjectAnimator scaleY= ObjectAnimator.ofFloat(imageView, "scaleY", 1.0F, 0.50F);//竖直方向 AnimatorSet set = new AnimatorSet(); //set.playSequentially(alpha, scaleX, scaleY);//分步执行 //set.playTogether(alpha, scaleX, scaleY);//同步执行 //属性动画的执行顺序控制 // 先同步执行动画scaleX和scaleX,然后再执行alpha set.play(scaleY).with(alpha); set.play(scaleX).after(scaleY); set.setDuration(1000); set.start();
说明一下,关于参数,因为是ofFloat方法所以,参数必须是float值,还有参数的个数,可变参数,你懂得,一个参数时,会通过反射的方法获得当前值作为初始值,之前的那个参数作为结束值,两个参数没啥好说的,一个开始,一个结束,三个参数同两个参数,中间那个为过度值。
其实还有一个法儿子,就是上边提到的5 PropertyValuesHolder
PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1.0f,1.5f);// alpha PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.0f,0f,1.5f);//scaleX PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 1.0f,0f,1.5f);//scaleY ObjectAnimator.ofPropertyValuesHolder(view, alpha,scaleX,scaleY).setDuration(2000).start();//从PropertyValuesHolder 导入动画
那么这两种区别在哪?
答案就在下边,不解释。
//属性动画的执行顺序控制 // 先同步执行动画scaleX和scaleX,然后再执行alpha set.play(scaleY).with(alpha); set.play(scaleX).after(scaleY);
- 属性动画PropertyAnimation 小试牛刀
- 【Android】PropertyAnimation属性动画
- PropertyAnimation属性动画
- 动画之属性动画--PropertyAnimation
- Android 属性动画(PropertyAnimation)详解
- Android属性动画(PropertyAnimation)
- QML动画之PropertyAnimation(属性动画)
- Android动画3-属性动画(PropertyAnimation)
- Android API Guide --- PropertyAnimation(属性动画)
- PropertyAnimation属性动画资源 ArgbEvaluator使用
- 属性动画(PropertyAnimation)的完全解析
- 属性动画(PropertyAnimation)好玩的粘性控件
- Android属性动画(PropertyAnimation)(下)
- PropertyAnimation属性动画 ValueAnimator实现自由落体 抛物线
- Android属性动画(PropertyAnimation)(下)
- Android动画之属性动画(PropertyAnimation)详解(一)
- Android中PropertyAnimation属性动画详解(一)
- PropertyAnimation属性动画 ObjectAnimator三种方式实现
- 解决WORDPRESS 4.1版本不显示ICP备案号的问题
- JPype
- WORDPRESS 中 GOOGLE 字体的最佳替代方案
- R语言学习(十二)
- 【Linux基础笔记】虚拟机下的centOS不能自动获取IP地址<二>
- 属性动画PropertyAnimation 小试牛刀
- 无法显示TabHost的setIndicator设置的图片的问题解决办法
- linux系统备份命令
- 套接字工厂——ServerSocketFactory
- 【USACO2.3.1】最长前缀 KMP(爆内存) 暴力(居然更快还AC)
- 【C/C++】int *p[4]与int (*q)[4]的区别
- java.ByteArrayInputStream与ByteArrayOutputStream浅谈
- BZOJ 1861 书架(splay)
- OC_类