//属性动画
属性动画和补间动画的区别:
补间动画:控件仍停留在原来位置(实际位置没有改变)
属性动画:动画过程中控件位置发生了改变
//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.0f
ObjectAnimator 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,再播放oa2
set.playTogether(oa,oa2);//一起同时播放
set.start();
}
属性动画和补间动画的区别:
补间动画:控件仍停留在原来位置(实际位置没有改变)
属性动画:动画过程中控件位置发生了改变