View Animation可以對view做透明度、缩放、平移、旋转等動畫。
xml動畫文件需再res/anim目錄中(在res新增Directory名為anim)
淡入淡出的動畫android:fromAlpha=""
動畫開始的透明度,0(完全透明)~1(不透明)android:toAlpha=""
動畫結束的透明度,0(完全透明)~1(不透明)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="2000" //動畫持續時間2秒
android:fromAlpha="1.0"
android:toAlpha="0" />
</set>
做向量間的移動動畫android:fromXDelta=""
x的起始座標值android:fromYDelta=""
y的起始座標值android:toXDelta=""
x的結束座標值android:toYDelta=""
y的結束座標值
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="200"
android:toYDelta="100"/>
</set>
物件變大變小的動畫android:fromXScale=""
X起始座標android:fromYScale=""
Y起始座標android:pivotX=""
縮放時中心的X座標android:pivotY=""
縮放時中心的Y座標android:toXScale=""
X結束座標android:toYScale=""
Y結束座標
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:duration="2000"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="10%"
android:toXScale="2.0"
android:toYScale="2.0"/>
</set>
旋轉的動畫android:fromDegrees=""
旋轉起始的角度android:toDegrees=""
旋轉結束的角度android:pivotX=""
旋轉中心的x座標android:pivotY=""
旋轉中心的Y座標
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="100%"
android:pivotY="100%"
android:toDegrees="720"/>
</set>
調用AnimationUtils類的靜態函數loadAnimation(),讓元件進行動畫的顯示,
public class Test1Activity extends AppCompatActivity {
Button scalebtn,translatebtn,alphabtn,rotatebtn;
private Animation animationAlpha,animationTranslate,animationScale,animationRotate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test1);
component();
AnimationSet();
}
private void AnimationSet() {
animationScale=AnimationUtils.loadAnimation(this,R.anim.viewanimationscale);
animationTranslate=AnimationUtils.loadAnimation(this,R.anim.viewanimationtranslate);
animationAlpha=AnimationUtils.loadAnimation(this,R.anim.viewanimationalpha);
animationRotate=AnimationUtils.loadAnimation(this,R.anim.viewanimationrotate);
scalebtn.startAnimation(animationScale);
translatebtn.startAnimation(animationTranslate);
alphabtn.startAnimation(animationAlpha);
rotatebtn.startAnimation(animationRotate);
}
private void component() {
scalebtn=findViewById(R.id.scale);
translatebtn=findViewById(R.id.translate);
alphabtn=findViewById(R.id.alpha);
rotatebtn=findViewById(R.id.rotate);
}
}