//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();
}
屬性動畫和補間動畫的區別:
補間動畫:控件仍停留在原來位置(實際位置沒有改變)
屬性動畫:動畫過程中控件位置發生了改變