在Android中,Animation動畫效果的實現能夠經過兩種方式進行實現,一種是tweened animation漸變更畫,另外一種是frame by frame animation畫面轉換動畫。linux
tweened animation漸變更畫有如下兩種類型:android
1.alpha 漸變透明度動畫效果ide
2.scale 漸變尺寸伸縮動畫效果動畫
frame by frame animation畫面轉換動畫有如下兩種類型:this
1.translate 畫面轉換位置移動動畫效果spa
2.rotate 畫面轉移旋轉動畫效果xml
在res文件夾下新建一個anim的文件夾,並在其中創建一個animation.xml文件,具體以下:htm
<?xml version=」1.0″ encoding=」utf-8″?>對象
<setutf-8
xmlns:android=」http://schemas.android.com/apk/res/android」>
<translate
android:fromXDelta=」0″ //設置動畫開始時x座標的位置
android:toXDelta=」-100%p」 //設置動畫結束時x座標的位置
android:duration=」300″ //設置動畫持續的時間 300毫秒
>
</translate>
<alpha
android:fromAlpha=」1.0″ //設置動畫開始時的透明度 1.0表明不透明
android:toAlpha=」0.0″ //設置動畫開始時的透明度 0.0表示徹底透明
android:duration=」300″ //設置動畫持續的時間 300毫秒
/>
<scale
android:interpolator=」 //設置動畫出入器
@android:anim/accelerate_decelerate_interpolator」
android:fromXScale=」0.0″ //設置動畫開始時x座標上的伸縮長度
android:toXScale=」1.4″ //設置動畫結束時x座標上的伸縮長度
android:fromYScale=」0.0″ //設置動畫開始時y座標上的伸縮長度
android:toYScale=」1.4″ //設置動畫開始時y座標上的伸縮長度
android:pivotX=」50%」 //設置動畫相對於控件的x座標的位置
android:pivotY=」50%」 //設置動畫相對於控件的y座標的位置
android:fillAfter=」false」 //該動畫轉化在動畫結束前開始應用
android:duration=」700″ //設置動畫持續的時間
/>
<rotate
android:interpolator= //設置動畫出入器
「@android:anim/accelerate_decelerate_interpolator」
android:fromDegrees=」0″ //設置動畫開始時的角度
android:toDegrees=」+350″ //設置動畫結束時的旋轉角度
android:pivotX=」50%」 //設置動畫相對於控件的x座標的位置
android:pivotY=」50%」 //設置動畫相對於控件的y座標的位置
android:duration=」3000″ //設置動畫持續的時間
/>
</set>
利用AnimationUtils.loadAnimation將動畫加載
Animation animation;
animation=AnimationUtils.loadAnimation(this, R.anim.animation);
而後再想要實現動畫效果的控件上經過使用startAnimation()方法進行添加。
//編寫動畫對象,而且獲取自定應的動畫樣式
animation=AnimationUtils.loadAnimation(this, R.anim.animation);
spinner.setOnTouchListener(new Spinner.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//運行動畫animation
v.startAnimation(animation);
//將spinner的可見性設置爲不可見狀態
v.setVisibility(View.INVISIBLE);
return false;
}
});