屬性動畫

//屬性動畫

//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();
	}

屬性動畫和補間動畫的區別:
補間動畫:控件仍停留在原來位置(實際位置沒有改變)
屬性動畫:動畫過程中控件位置發生了改變
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章