ValueAnimator
valueAnimator是整个属性动画机制当中最核心的一个类。
简单使用
ValueAnimator anim = ValueAnimator.ofFloat(0f,1f);
anim.setDuration(1000);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float current = (float) animation.getAnimatedValue();
Log.e(“TAG”,current+”“);
}
});
anim.start();
从0 变成1的过程

valueAnimator最常用的方法就是ofFloat()、ofInt()、等还有ofObject();
此外,还可以调用setStartDelay()方法来设置动画延迟播放的时间
调用setRepeatCount()和setRepeatMode()方法设置动画循环播放次数和循环播放模式,
循环模式包括RESTART和REVERSE两种,分别表示重新播放个倒叙播放的意思。

ObjectAnimator
objectAbunator可以对任意对象的任意属性就行动画操作。
例如:把一个imgeView从常规变成透明
ObjectAnimator animator = ObjectAnimator.ofFloat(img,”alpha”,1.0f,0.0f);
animator.setDuration(1000);
animator.start();
同理rotate translate scale 同样效果

组合动画
实现组合动画主要借助AnimatorSet这个类,提供了一个play()方法,如果向这个方法中传入一个Animator对象将会返回一个AnimatorSet.Builder的实例,Animatorset.Builder包括下面四个方法:
1.after(Animator anim)将现有动画插入到传入的动画之后执行
2.after(long delay) 将现有动画延迟指定毫秒后执行
3.before(Animator anim) 将现有动画插入到传入的动画之前执行
4.with(Animator anim) 将现有动画和传入的动画同时执行

    ObjectAnimator moveIn = ObjectAnimator.ofFloat(img,"translationX",-500f,0f);    ObjectAnimator rotate = ObjectAnimator.ofFloat(img,"rotate",0f,360f);    ObjectAnimator fadeInout = ObjectAnimator.ofFloat(img,"alpha",1f,0f,1f);    AnimatorSet animatorSet = new AnimatorSet();    animatorSet.play(rotate).with(fadeInout).after(moveIn);    animatorSet.setDuration(2000);    animatorSet.start();

Animator监听器
Animator提供了一个addListener()方法,这个方法接受一个AnimatorListener,只需要实现这个AnimatorListener就可以监听。

animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {

        }        @Override        public void onAnimationEnd(Animator animation) {        }        @Override        public void onAnimationCancel(Animator animation) {        }        @Override        public void onAnimationRepeat(Animator animation) {        }    });

使用xml编写属性动画
首先在res目录下创建animtor文件夹,所有属性动画的文件都放在xml下
在xml文化中我们一共可使用以下三个标签:
animator
objectAnimator
set
例1:实现一个从0-100的过度

更多相关文章

  1. Android(安卓)中的BroadCastReceiver
  2. Android(安卓)Timer 更好方法
  3. 深入理解Notification机制
  4. Android(安卓)7.0 如何去掉灭屏动画
  5. Android(安卓)SDK更新 Connection to http://dl-ssl.google.com
  6. 控件 -- WebView -- Android与JS交互
  7. 强制系统横屏竖屏
  8. 删除android ScrollView边界阴影方法
  9. Android显示网络图片相关实现方法浅谈

随机推荐

  1. MySql 5.7.17压缩包免安装的配置过程图解
  2. MySql 8.0.11安装配置教程
  3. MySQL外键约束常见操作方法示例【查看、
  4. MySql 5.7.21免安装版本win10下的配置方
  5. mysql 开放外网访问权限的方法
  6. Linux安装mysql并配置外网访问的实例
  7. Windows系统中完全卸载MySQL数据库实现重
  8. 设置Mysql5.6允许外网访问的详细流程分享
  9. mac 装5.6版本mysql 设置密码的简易方法
  10. Mysql数据库从5.6.28版本升到8.0.11版本