1. 程式人生 > >屬性動畫ValueAnimator與ObjectAnimator

屬性動畫ValueAnimator與ObjectAnimator

ValueAnimator的簡單應用
/        //初始化,設定初始值和結束
//        ValueAnimator valueAnimator=ValueAnimator.ofFloat(0.4f,8.7f,3,5);
//        valueAnimator.ofInt(2,1,3);
//        //動畫執行時間,初始值到結束值的過渡時間
//        valueAnimator.setDuration(1000);
//        //啟動動畫;
//        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                //監聽執行過程。
//               // System.out.println(animation.getAnimatedValue());
//            }
//        });
//        valueAnimator.start();
ObjectAnimator的簡單使用
//        ObjectAnimator moveIn = ObjectAnimator.ofFloat(textView, "translationX", -500f, 0f);
//        ObjectAnimator rotate = ObjectAnimator.ofFloat(textView, "rotation", 0f, 360f);
//        ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textView, "alpha", 1f, 0f, 1f);
//        AnimatorSet animSet = new AnimatorSet();
//        animSet.play(rotate).with(fadeInOut).after(moveIn);
//        animSet.setDuration(5000);
//        //動畫監聽,不需要重新所有方法
//        animSet.addListener(new AnimatorListenerAdapter() {
//            @Override
//            public void onAnimationEnd(Animator animation) {
//                super.onAnimationEnd(animation);
//            }
//        });
//        animSet.start();
Animator 利用xml實現動畫
   img = findViewById(R.id.animat);
        @SuppressLint("ResourceType")
        Animator animator = AnimatorInflater.loadAnimator(this, R.anim.anim_lay);
        animator.setTarget(img);
        animator.start();

        animator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                super.onAnimationEnd(animation);
                Intent intent = new Intent(AnimtorActivity.this,MainActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }
xml檔案
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:ordering="sequentially"
    >

    <objectAnimator
        android:duration="2000"
        android:propertyName="translationX"
        android:valueFrom="-500"
        android:valueTo="0"
        android:valueType="floatType" >
    </objectAnimator>

    <set android:ordering="together" >
        <objectAnimator
            android:duration="3000"
            android:propertyName="rotation"
            android:valueFrom="0"
            android:valueTo="360"
            android:valueType="floatType" >
        </objectAnimator>

        <set android:ordering="sequentially" >
            <objectAnimator
                android:duration="1500"
                android:propertyName="alpha"
                android:valueFrom="1"
                android:valueTo="0"
                android:valueType="floatType" >
            </objectAnimator>
            <objectAnimator
                android:duration="1500"
                android:propertyName="alpha"
                android:valueFrom="0"
                android:valueTo="1"
                android:valueType="floatType" >
            </objectAnimator>
        </set>
    </set>
</set>