Tweened Animation 四種類型
- **Alpha: ** 漸變透明度
- **Scale: ** 尺寸縮放
- **Translate: ** 畫面位置移動轉換
- **Rotate: ** 畫面旋轉
設置動畫的兩種方式
- XML文件中設置
- Java代碼中設置
XML中設置動畫
XML中設置動畫的步驟
- res文件夾下新建一個名為anim的文件夾:res/anim/anim.xml
- 創(chuàng)建動畫xml文件晌端,并加入set標簽诉字,set標簽相當于Java代碼中的AnimationSet
- 在set標簽內枯途,加入alpha/scale/rotate/translate等標簽,此處相當于Java代碼中的AlphaAnimation/ScaleAnimation/RotateAnimation和TranslateAnimation尖奔。默認情況下,這些動畫指令都是同時執(zhí)行的。如果想讓其在不同的時間執(zhí)行攻走,可以使用startOffSet屬性谓媒。
Example:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
</set>
</set>
- 在Java代碼中使用AnimationUtils中的loadAnimation方法加載該動畫xml文件淆院,并得到一個Animation對象。
- 使用控件的startAnimation()方法執(zhí)行這個Animation對象篙耗。
Example:
//第一個參數(shù)mContext為程序的上下文
//第二個參數(shù)id為動畫xml文件的引用
Animation mSaveAnimation= AnimationUtils.loadAnimation(mContext,R.anim.anim_save);
mSaveButton.startAnimation(mSaveAnimation);```
###XML通用屬性介紹
- **android:duration**
*int*. 動畫持續(xù)的時間迫筑,默認為300ms。
- **android:startOffset**
動畫延遲執(zhí)行的時間
- **android:repeatCount**
動畫重復的次數(shù)宗弯,默認0:沒有重復脯燃;1:重復1次;-1:無限重復蒙保。
- **android:repeatMode**
當repeatMode大于0時才有效果辕棚。
*reverse*:動畫反向執(zhí)行
*restart*:動畫重復執(zhí)行
- **android:fillAfter**
如果fillAfter設置為true,則動畫執(zhí)行結束后,控件停留在動畫結束的狀態(tài)
- **android:fillBefore**
如果fillBefore設置為true逝嚎,則動畫執(zhí)行結束后扁瓢,控件回到動畫開始的狀態(tài)
- android:interpolator
設置動畫的改變速度:
android:interpolator="@android:anim/accelerate_interpolator"http://加速
android:interpolator="@android:anim/decelerate_interpolator"http://減速
android:interpolator="@android:anim/cycle_Interpolator"http://動畫循環(huán)播放特定次數(shù),速率改變沿著正弦曲線
android:interpolator="@android:anim/linear_Interpolator"http://勻速```
-
android:shareInterpolator
如果為true补君,代表所有的子elements共享同一個interpolator
<alpha> 淡入淡出動畫效果
-
android:fromAlpha
Float. 動畫開始時的透明度引几,0.0表示全透明,1.1表示不透明挽铁。 -
android:toAlpha
Float. 動畫結束時的透明度
<scale> 縮放動畫伟桅,以pivotX和pivotY點為中心向內或向外縮放。
-
android:fromXScale
Float. 動畫開始時X坐標上的伸縮尺寸 -
android:toXScale
Float. 動畫結束時X坐標上的伸縮尺寸 -
android:fromYScale
Float. 動畫開始時Y坐標上的伸縮尺寸 -
android:toYScale
Float. 動畫結束時Y坐標上的伸縮尺寸 -
android:pivotX
Float. 當X坐標被縮放時叽掘,該坐標點保持不變楣铁。 -
android:pivotY
Float. 當Y坐標被縮放時,該坐標點保持不變更扁。
0.0表示收縮到?jīng)]有盖腕,1.0表示正常無伸縮,值小于1.0表示收縮浓镜,值大于1.0表示放大
<translate> 垂直或水平運動
**android:fromXDelta **
Float or percentage. 動畫開始時溃列,X坐標上的位置android:toXDelta
Float or percentage. 動畫結束時,X坐標上的位置-
android:fromYDelta
Float or percentage. 動畫開始時竖哩,Y坐標上的位置
下一屏-pre.png android:toYDelta
Float or percentage. 動畫結束時哭廉,Y坐標上的位置
<rotate> 旋轉動畫
-
android:fromDegrees
Float. 動畫開始的角度 -
android:toDegrees
Float. 動畫結束的角度 -
android:pivotX
Float or percentage. 旋轉的X坐標的位置 -
android:pivotY
Float or percentage. 旋轉的Y坐標的位置
沒有實例,為完結相叁,仍會繼續(xù)更新遵绰,敬請關注,謝謝增淹。
!