属性动画Animator 、传统动画 Animation
传统动画: eg. 平移---
TranslateAnimation animation=new TA(0 ,200 ,0 ,0); //参数:初始/最终 的 X/Y坐标
animation.setDuration( 1000); //延迟时间
animation.setFillAfter( true); //停在最终位置
ImageView iv=() fv~( ); //控件 初始化
iv.startAnimation(animation); //启动
// 移动后,原点击事件仍然在初始位置
属性动画:
public class AnimatorActivity extends Activity {
private ImageView main_iv;
private ImageView c_iv;
private ImageView d_iv;
private ImageView e_iv;
ObjectAnimator oa_3;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animator);
init();
setAnimator();
}
private void setAnimator() { //设置动画 --对象、属性、X/Y绝对位置(起始、终止
//ObjectAnimator.ofFloat(main_iv,"translationX",0,200).setDuration(1000).start();
// PropertyValuesHolder pv1=PropertyValuesHolder.ofFloat("rotation",0,360f); //参数--属性及其属性值
// ObjectAnimator.ofPropertyValuesHolder(c_iv,pv1).setDuration(9000).start(); //对象、动画
/**利用动画集完成多个动画*/
ObjectAnimator oa_1=new ObjectAnimator().ofFloat(main_iv,"translationY",0,100);
ObjectAnimator oa_2=new ObjectAnimator().ofFloat(c_iv,"translationX",0,200);
oa_3=new ObjectAnimator().ofFloat(d_iv,"translationX",230,30);
AnimatorSet set= new AnimatorSet();
//set.playTogether(oa_1,oa_2,oa_3); //动画集,同时播放
set.play(oa_1).with(oa_2); //可对每一个进行控制
set.play(oa_3).after(oa_1);
set.setDuration(2300).start();
/**点击事件*/
initListener();
}
private void initListener() {
oa_3.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
ObjectAnimator.ofFloat(e_iv,"rotation",0,360).setDuration(2300).start();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
private void init() {
main_iv= (ImageView) findViewById(R.id.iv_main);
c_iv= (ImageView) findViewById(R.id.iv_c);
d_iv= (ImageView) findViewById(R.id.iv_d);
e_iv= (ImageView) findViewById(R.id.iv_e);
}
}public class MyAnimatorActivity extends Activity implements View.OnClickListener{
private int[] res={R.id.iv_main,R.id.iv_c,R.id.iv_d,R.id.iv_e};
private List
list_iv=new ArrayList<>();
private boolean flag=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_animator);
init();
}
//实例化控件,并将其加入到List中,顺便实现点击事件
private void init() {
for(int i=0;i
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)