您的位置:首页 > 其它

笔记16 Animator 安卓属性动画 三种实现方式及监听事件实现

2016-08-12 15:59 477 查看


package test.ban.com.test;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void onClick(View view) {
Toast.makeText(this, "onClick", Toast.LENGTH_SHORT).show();
}

public void move(View view) {
ImageView imageView = (ImageView) findViewById(R.id.imageView);

        // Animation 不能响应交互
// Animator 可以响应交互

//方法一
ObjectAnimator.ofFloat(imageView,"rotation",0F,360F).setDuration(1000).start();
ObjectAnimator.ofFloat(imageView,"translationX",0F,200F).setDuration(1000).start();
ObjectAnimator.ofFloat(imageView,"translationY",0F,200F).setDuration(1000).start();

//方法二
PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("rotation", 0F, 360F);
PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("translationX",0F,200F);
PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("translationY",0F,200F);
ObjectAnimator.ofPropertyValuesHolder(imageView,p1,p2,p3).setDuration(1000).start();

//方法三
ObjectAnimator animator1 = ObjectAnimator.ofFloat(imageView,"rotation",0F,360F);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(imageView,"translationX",0F,360F);
ObjectAnimator animator3 = ObjectAnimator.ofFloat(imageView,"translationY",0F,360F);
AnimatorSet set = new AnimatorSet();
set.playTogether(animator1,animator2,animator3);
set.setDuration(1000);
set.start();

//监听方式一 实现全部的接口
animator1.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {

}

@Override
public void onAnimationEnd(Animator animation) {
Toast.makeText(MainActivity.this, "onAnimationEnd", Toast.LENGTH_SHORT).show();
}

@Override
public void onAnimationCancel(Animator animation) {

}

@Override
public void onAnimationRepeat(Animator animation) {

}
});

//监听方式 实现部分接口 有选择的去实现要监听的事件
animator1.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
Toast.makeText(MainActivity.this, "onAnimationEnd", Toast.LENGTH_SHORT).show();

}
});

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: