android中动画的学习
16lz
2021-01-23
ImageView iv = (ImageView) findViewById(R.id.imageView1);ObjectAnimator obj = ObjectAnimator.ofFloat(iv, "alpha",0f, 1f);obj.setDuration(2000);obj.start();obj = ObjectAnimator.ofFloat(iv,"rotationX",0.0f,180.0f,180.0f,0.0f);obj.setDuration(5000);obj.setRepeatMode(Animation.REVERSE);obj.start();//-----------------------------------------------------------------------------------------//iv.setOnClickListener(new OnClickListener() {////@Override//public void onClick(final View v) {//Log.d("liuhang","===============");//////ObjectAnimator obj = ObjectAnimator.ofFloat(v,"rotationY",0.0f,180.0f,180.0f,0.0f);////obj.setDuration(3000);////obj.start();////ObjectAnimator obj = ObjectAnimator.ofFloat(v, "liuhang",0.0f,1.3f,1.3f,1.0f).setDuration(3000);//obj.start();//obj.addUpdateListener(new AnimatorUpdateListener() {////@Override//public void onAnimationUpdate(ValueAnimator animation) {////float cVal = (Float) animation.getAnimatedValue();//v.setAlpha(cVal);//v.setScaleX(cVal);//v.setScaleY(cVal);//}//});//}//}); //-----------------------------------------------------------------------------------------//usePropertyValueHolder(iv);//-----------------------------------------------------------------------------------------ObjectAnimator obj = ObjectAnimator.ofFloat(iv,"alpha",0.5f);obj.addListener(new AnimatorListener() {@Overridepublic void onAnimationStart(Animator animation) {// TODO Auto-generated method stubLog.d(tag, "animation start");}@Overridepublic void onAnimationRepeat(Animator animation) {// TODO Auto-generated method stubLog.d(tag, "animation repeat");}@Overridepublic void onAnimationEnd(Animator animation) {// TODO Auto-generated method stubLog.d(tag, "animation end");}@Overridepublic void onAnimationCancel(Animator animation) {// TODO Auto-generated method stubLog.d(tag, "animation cancel");}});obj.start();}public void usePropertyValueHolder(View view) {PropertyValuesHolder vhAlpha = PropertyValuesHolder.ofFloat("alpha",1f,0f,1f);PropertyValuesHolder vhScaleX = PropertyValuesHolder.ofFloat("scaleX",1f,0f,1.5f,1.0f);PropertyValuesHolder vhScaleY = PropertyValuesHolder.ofFloat("scaleY",1f,0f,1.5f,1.0f);ObjectAnimator.ofPropertyValuesHolder(view, vhAlpha,vhScaleX,vhScaleY).setDuration(3000).start();}
多个动画同时运行
public void togetherRun(View view) {ObjectAnimator animationOne = ObjectAnimator.ofFloat(view, "scaleX",1.0f,2.0f,1.0f);ObjectAnimator animationTwo = ObjectAnimator.ofFloat(view, "scaleY",1.0f,2.0f,1.0f);AnimatorSet sets = new AnimatorSet();sets.setInterpolator(new AccelerateDecelerateInterpolator());sets.playTogether(animationOne,animationTwo);sets.setDuration(3000);sets.start();}