什麼是AnimationSet?
1.AnimationSet是Animation的子類;
2.一個AnimationSet包含了一系列的Animation;
3.設定AnimationSet對象的屬性,相當于設定的AnimationSet對象包含的所有Animation對象屬性
4.使用AnimationSet可以整合多種動畫效果
AnimationSet的使用方法
1.在MainActivity.java中建立一個AnimationSet對象,然後再建立多個動畫對象
2.将多個動畫對象添加到AnimationSet對象中
3.設定AnimationSet對象的屬性
4.将ImageView對象與AnimationSet對象進行綁定
MainActivity.java:
package com.mycompany.animations3;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new ButtonListener());
}
class ButtonListener implements View.OnClickListener{
@Override
public void onClick(View v) {
// 建立AnimationSet對象
AnimationSet animationSet = new AnimationSet(true);
// 建立多個動畫對象
AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.0f);
RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
// 将多個動畫對象添加到AnimationSet對象中
animationSet.addAnimation(alphaAnimation);
animationSet.addAnimation(rotateAnimation);
// 設定AnimationSet對象的屬性
animationSet.setDuration(3000);
animationSet.setStartOffset(2000);
// 将ImageView對象與AnimationSet對象進行綁定
imageView.startAnimation(animationSet);
}
}
}
什麼是Interpolator?
Interpolator定義了動畫變化的速率,在Animations架構當中定義了以下幾種Interpolator:
AccelerateDecelerateInterpolator:在動畫開始與結束的地方速率改變比較慢,在中間的時候開始加速
AccelerateInterpolator:在動畫開始的地方速率改變比較慢,然後開始加速
CycleInterpolator:動畫循環播放特定的次數,速率沿着正弦曲線改變
DecelerateInterpolator:在動畫開始的地方速率改變比較慢,然後開始減速
LinearInterpolator:以均勻速率改變
Interpolator的使用方法
Interpolator屬性可以在Animation resource file中設定,也可以在代碼中進行設定