属性动画

来源:互联网 发布:炉石传说有mac版吗 编辑:程序博客网 时间:2024/06/07 11:16
//属性动画

//ObjectAnimator.ofFloat(target,propertyName,values);//propertyName属性名称

/** * 透明度 * @param view */public void alpha(View view){//iv.setAlpha(alpha);//iv.getAlpha()//透明度从0.0f->0.2f->0.4f->0.6f->0.8f->1.0f (完全透明0.0f ---> 完全不透明1.0f )ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "alpha", 0.0f,0.2f,0.4f,0.6f,0.8f,1.0f);oa.setDuration(4000);oa.setRepeatMode(ObjectAnimator.REVERSE);oa.setRepeatCount(ObjectAnimator.INFINITE);oa.start();}

/** * 旋转动画 * @param view */public void rotate(View view){//iv.setRotation(rotation)//iv.setRotationX(rotationX)//围绕x轴方向//iv.setRotationY(rotationY)//围绕y轴方向//0度旋转到30度到60度到90度ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "rotationX", 0.0f,30f,60.0f,90f);oa.setDuration(2000);oa.setRepeatMode(ObjectAnimator.REVERSE);oa.setRepeatCount(ObjectAnimator.INFINITE);oa.start();}

/** * 缩放 * @param view */public void scale(View view){//iv.setScaleX(scaleX);//放大  0.0->0.2倍->0.5倍->2.0倍ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "scaleY", 0.0f,0.2f,0.5f,2.0f); //竖直方向oa.setDuration(2000);oa.setRepeatMode(ObjectAnimator.REVERSE);oa.setRepeatCount(ObjectAnimator.INFINITE);oa.start();}

/** * 位移 * @param view */public void trans(View view){//iv.setTranslationX(translationX)//x方向从0->10.0f->20.0f->30.0f->40.0f->100.0f->200.0fObjectAnimator oa = ObjectAnimator.ofFloat(iv, "translationX", 0,10.0f,20.0f,30.0f,40.0f,100.0f,200.0f);//iv为ImageView控件oa.setDuration(5000);oa.setRepeatCount(ObjectAnimator.INFINITE);//一直重复oa.setRepeatMode(ObjectAnimator.REVERSE);oa.start();}

public void set(View view){//动画的集合AnimatorSet set = new AnimatorSet();ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "rotation", 0.0f,30f,60.0f,90f);oa.setDuration(4000);ObjectAnimator oa2 = ObjectAnimator.ofFloat(iv, "translationX", 0.0f,10f,20,40f,60f,100f,200f,600f);oa2.setDuration(2000);//set.playSequentially(oa,oa2);//按顺序播放,先播放oa,再播放oa2set.playTogether(oa,oa2);//一起同时播放set.start();}

属性动画和补间动画的区别:
补间动画:控件仍停留在原来位置(实际位置没有改变)
属性动画:动画过程中控件位置发生了改变