animtorDemo

来源:互联网 发布:泰拉瑞亚骸骨魔弓数据 编辑:程序博客网 时间:2024/05/17 09:22
public class AnimatorDemo {//属性动画,通过调用Get Set方法来真实的控制了一个View的属性值//如果该属性没有get set方法,则可以通过包装类来解决 ->mTargetView.getLayoutParams().width=width;//也可以通过ValueAnimtor的来解决这个问题private static AnimatorDemo instance;public static AnimatorDemo getInstance(){    if (instance==null){        synchronized (AnimatorDemo.class){            if (instance==null)                instance=new AnimatorDemo();        }    }    return instance;}//ObjectAnimator继承于ValueAnimator//更像是一个数值发生器,用来产生有规律的数字public void doValueAnimator(final ImageView iv){    ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 100, 0, 300);    valueAnimator.setDuration(5000);    valueAnimator.setTarget(iv);    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {        @Override        public void onAnimationUpdate(ValueAnimator animation) {            Float animatedValue = (Float) animation.getAnimatedValue();            iv.setTranslationX(animatedValue);        }    });    valueAnimator.start();}public void doAlpha(ImageView iv){}public void doRotate(ImageView iv){}public void doTranslate(ImageView iv){    ObjectAnimator translationX = ObjectAnimator.ofFloat(iv, "translationX", 0, 300);    translationX.setDuration(5000);    translationX.start();}public void doScale(ImageView iv){    ObjectAnimator translationX = ObjectAnimator.ofFloat(iv, "scaleX", 0, 3);    translationX.setDuration(5000);    translationX.start();}//属性动画集合public void doGroup(ImageView iv){    //实现方法一:使用PropertyValuesHolder/*        PropertyValuesHolder translationX =PropertyValuesHolder.ofFloat("translationX", 0, 300);    PropertyValuesHolder scaleX =PropertyValuesHolder.ofFloat("scaleX", 0, 3);    ObjectAnimator.ofPropertyValuesHolder(iv,translationX,scaleX).setDuration(5000).start();*/    //实现方法二:使用AnimatorSet    ObjectAnimator translationX2 = ObjectAnimator.ofFloat(iv, "translationX", 0, 300);    ObjectAnimator scaleX2 = ObjectAnimator.ofFloat(iv, "scaleX", 0, 3);    AnimatorSet animatorSet = new AnimatorSet();    animatorSet.setDuration(5000);    animatorSet.playTogether(translationX2,scaleX2);    animatorSet.start();}}
原创粉丝点击