屬性動畫ValueAnimator與ObjectAnimator
阿新 • • 發佈:2019-02-13
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實現動畫
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 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>