ObjectAnimator
使用属性动画有3种方法:
1、使用ObjectAnimator类;
eg: ObjectAnimator.ofFloat(mImageView, "translationX", 0, i * 100F).setDuration(1000).start();
(1)第一个参数为Object 一般为需要实现动画的对象。
(2)第二个为要实现的动画类型(String类型) 具体有"translationX","translationY","rotation","alpha","scaleX"等
(3)第三个为values数组值,一般为 从...到...。
2、使用PropertyValuesHolder类;
eg:PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("translationX", 0, i * 100F);
ObjectAnimator.ofPropertyValuesHolder(mImageViews[i], p1).setDuration(1000).start();
(1)ObjectAnimator.ofPropertyValuesHolder(参数1,参数2) 参数2的值同样为数组值,可填多个,如 ObjectAnimator.ofPropertyValuesHolder(mImageViews[i], p1,p2,p3)
3、使用动画集AnimatorSet;
eg: ObjectAnimator anim1=ObjectAnimator.ofFloat(mImageView, "translationX", 0, i * 100F).setDuration(1000).start();
ObjectAnimator anim2=ObjectAnimator.ofFloat(mImageView, "translationY", 0, i * 100F).setDuration(1000).start();
AnimatorSet set=new AnimatorSet();
set.playTogether(anim1,anim2); // 设置同时进行的动画
//set.playSequentially(anim1,anim2); //设置动画开始的顺序
//set.play(anim1).with(anim2); // 设置同时进行的动画
//set.play(anim1).after(anim2); //设置anim1在anim2之后
set.setDuration(1000);
set.start();
设置动画对象的锚点;
ViewHelper.setPivotX(target, 0);
ViewHelper.setPivotY(target, 0);
(1)第一个参数为对象,第二个参数为锚点位置 (0:左上角; 宽/2 and 高/2:中心; 宽and高:右下角)