1動畫涉及到的知識點
Scale動畫
Scale是Android的尺寸縮放動畫,繼承自基類Animation
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0" #起始x尺寸比例
android:toXScale="1.4" #最終x尺寸比例
android:fromYScale="0.0" #起始y尺寸比例
android:toYScale="1.4" #最終y尺寸比例
android:pivotX="50%" #縮放起點x軸座標,取值可以是數值(50)、百分數(50%)、百
分數p(50%p),當取值爲數值時,縮放起點爲View左上角座標
加具體數值像素,當取值爲百分數時,表示在當前View左上角坐
加上View寬度的具體百分比,當取值爲百分數p時,表示在View
左上角座標加上父控件寬度的具體百分比
android:pivotY="50%" #同上
android:duration="700" #動畫持續時間,毫秒爲單位
android:fillAfter="true" #動畫結束後,保持結束時的狀態
android:fillBefore="true" #動畫結束後,恢復爲初始狀態
android:fillEnabled="true" #效果同上
android:repeatCount="5" #重複次數,取值爲-1時無限重複,默認動畫執行一次
android:repeatMode ="reverse" #重複模式,有reverse和restart兩個值,前者爲倒序回放,後者爲重新開始
android::interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器,後面單獨講
/>
Alpha動畫
Alpha是Andriod透明度漸變動畫,其基類爲Animation類。
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0" #起始透明度,取值範圍0.0--1.0 ,從完全透明到完全不透明
android:toAlpha="0.1" #結束透明度,取值範圍同上
android:duration="700" #動畫持續時間,毫秒爲單位
android:fillAfter="true" #動畫結束後,保持結束時的狀態
android:fillBefore="true" #動畫結束後,恢復爲初始狀態
android:fillEnabled="true" #效果同上
android:repeatCount="5" #重複次數,取值爲-1時無限重複,默認動畫執行一次
android:repeatMode ="reverse" #重複模式,有reverse和restart兩個值,前者爲倒序回放,後者爲重新開始
android::interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器,後面單獨講
/>
Rotate動畫
旋轉動畫,繼承自基類Animaton
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0" #初始角度
android:toDegrees="540" #結束時角度,值爲正時順時針旋轉,值爲負時逆時針旋轉
android:pivotX="50%" #旋轉中心x軸座標,取值可以是數值(50)、百分數(50%)、百
分數p(50%p),當取值爲數值時,縮放起點爲View左上角座標
加具體數值像素,當取值爲百分數時,表示在當前View左上角坐
加上View寬度的具體百分比,當取值爲百分數p時,表示在View
左上角座標加上父控件寬度的具體百分比
android:pivotY="50%" #同上
android:duration="700" #動畫持續時間,毫秒爲單位
android:fillAfter="true" #動畫結束後,保持結束時的狀態
android:fillBefore="true" #動畫結束後,恢復爲初始狀態
android:fillEnabled="true" #效果同上
android:repeatCount="5" #重複次數,取值爲-1時無限重複,默認動畫執行一次
android:repeatMode ="reverse" #重複模式,有reverse和restart兩個值,前者爲倒序回放,後者爲重新開始
android:interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器,後面單獨講
/>
Translate動畫
顧名思義,Translate動畫就是位移動畫,也是集成自基類Animation。
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0" #起始x軸座標位置
android:toXDelta="50" #結束時x軸座標位置
android:fromYDelta="0" #起始Y軸座標位置
android:toYDelta="200" #結束時Y軸座標位置
android:duration="700" #動畫持續時間,毫秒爲單位
android:fillAfter="true" #動畫結束後,保持結束時的狀態
android:fillBefore="true" #動畫結束後,恢復爲初始狀態
android:fillEnabled="true" #效果同上
android:repeatCount="5" #重複次數,取值爲-1時無限重複,默認動畫執行一次
android:repeatMode ="reverse" #重複模式,有reverse和restart兩個值,前者爲倒序回放,後者爲重新開始
android::interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器,後面單獨講
/>
Set動畫
set本身沒有什麼新的屬性,但可以讓它們四個動畫同時發揮作用,讓效果變得更加酷炫。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="700" #動畫持續時間,毫秒爲單位,set中會覆蓋子動畫該屬性
android:fillAfter="true" #動畫結束後,保持結束時的狀態
android:fillBefore="true" #動畫結束後,恢復爲初始狀態
android:fillEnabled="true" #效果同上
android:repeatCount="5" #此屬性無效對於set無效
android:repeatMode ="reverse" #重複模式,有reverse和restart兩個值,前者爲倒序回放,後者爲重新開始,set中會覆蓋子動畫該屬性
android:interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器,後面單獨講
>
<alpha
android:fromAlpha="0.2"
android:duration="2000"
android:toAlpha="1.0"/>
<scale android:fromXScale="0.5"
android:toXScale="1.5"
android:fromYScale="0.5"
android:toYScale="1.5"
android:pivotX="50%"
android:duration="5000"
android:repeatMode="restart"
android:repeatCount="2"
android:pivotY="50%"/>
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:duration="500"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
參考文章
https://blog.csdn.net/wenwen091100304/article/details/53471592