記錄一個(gè)簡(jiǎn)單的界面出入動(dòng)畫效果.
先定義動(dòng)畫配置文件
// 從右側(cè)滑動(dòng)進(jìn)入--show_in
// p表示以父層View為參照
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<translate
android:duration="1000"
android:fromXDelta="100%p"
android:toXDelta="0"
/>
</set>
//從右側(cè)滑出--show_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<translate
android:duration="1000"
android:fromXDelta="0"
android:toXDelta="100%p"
/>
</set>
然后在Activity界面的加載和取消邏輯中添加動(dòng)畫效果
//進(jìn)入時(shí)蹂楣,從右側(cè)滑入
@Override
protected final void onCreate(Bundle bundle) {
super.onCreate(bundle);
overridePendingTransition(R.anim.show_in, 0);
}
//退出時(shí),從右側(cè)滑出
@Override
public void finish() {
super.finish();
this.overridePendingTransition(0, R.anim.show_out);
}
除了xy軸平移動(dòng)畫外,還有其他動(dòng)畫效果:
// alpha xml 淡出效果
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="500" />
// rotate.xml 旋轉(zhuǎn)效果:
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="300"
android:toDegrees="-360"
android:pivotX="10%"
android:pivotY="100%"
android:duration="1000" />
</set>
<!--
fromDegrees 動(dòng)畫開(kāi)始時(shí)的角度
toDegrees 動(dòng)畫結(jié)束時(shí)物件的旋轉(zhuǎn)角度,正代表順時(shí)針
pivotX 屬性為動(dòng)畫相對(duì)于物件的X坐標(biāo)的開(kāi)始位置
pivotY 屬性為動(dòng)畫相對(duì)于物件的Y坐標(biāo)的開(kāi)始位置 -->
// scale.xml 縮放效果:
<scale
android:interpolator= "@android:anim/decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.5"
android:fromYScale="0.0"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:duration="10000"
android:repeatCount="1"
android:repeatMode="reverse" />
</set>
<!--
fromXDelta,fromYDelta 起始時(shí)X,Y座標(biāo),屏幕右下角的座標(biāo)是X:320,Y:480
toXDelta郭赐, toYDelta 動(dòng)畫結(jié)束時(shí)X,Y的座標(biāo) --> <!--
interpolator 指定動(dòng)畫插入器
常見(jiàn)的有加速減速插入器 accelerate_decelerate_interpolator
加速插入器 accelerate_interpolator寞秃,
減速插入器 decelerate_interpolator。
fromXScale,fromYScale秤朗, 動(dòng)畫開(kāi)始前X,Y的縮放,0.0為不顯示笔喉, 1.0為正常大小
toXScale取视,toYScale, 動(dòng)畫最終縮放的倍數(shù)常挚, 1.0為正常大小作谭,大于1.0放大
pivotX, pivotY 動(dòng)畫起始位置奄毡,相對(duì)于屏幕的百分比,兩個(gè)都為50%表示動(dòng)畫從屏幕中間開(kāi)始
startOffset折欠, 動(dòng)畫多次執(zhí)行的間隔時(shí)間,如果只執(zhí)行一次,執(zhí)行前會(huì)暫停這段時(shí)間锐秦,
單位毫秒 duration咪奖,一次動(dòng)畫效果消耗的時(shí)間,單位毫秒酱床,
值越小動(dòng)畫速度越快 repeatCount羊赵,動(dòng)畫重復(fù)的計(jì)數(shù),動(dòng)畫將會(huì)執(zhí)行該值+1次
repeatMode扇谣,動(dòng)畫重復(fù)的模式昧捷,reverse為反向,當(dāng)?shù)谂即螆?zhí)行時(shí)揍堕,動(dòng)畫方向會(huì)相反料身。
restart為重新執(zhí)行,方向不變 -->
// translate.xml 移動(dòng)效果:
<translate
android:fromXDelta="320"
android:toXDelta="0" />