記得之前又一次偶然,Activity的跳轉方向就不統一了,後邊隨便搜索發現了一個方法:overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
上次使用完沒有做記錄。幾天在用一個小的動畫有發現了相關的東西。很多屬性沒有用過不懂,這裏摘抄別人的記錄下。
動畫之translate(位移動畫):
這個動畫結合上述overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);方法以及style樣式
<style name="PopWindowAnimBottom" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@anim/push_bottom_in</item>
<item name="android:windowExitAnimation">@anim/push_bottom_out</item>
</style>
這樣就可以做些簡單動畫實現。
通過網絡查找知道:Translate動畫就是定義一個開始的位置和一個結束位置,定義移動時間,然後就能自動產生移動動畫。Android的translate移動方向有 橫向(X) 豎向(Y), 左右滑動使用了橫向移動效果,對於豎向(Y)的位置如下:
盜圖兩個以供參考:
這個圖是設置Activity 從下邊進入上邊退出動畫的示例。
從下往上進入:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="100%p"
android:toYDelta="0%p"
android:duration="1000">
</translate>
從中間往上退出:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="0%p"
android:toYDelta="-100%p"
android:duration="1000">
</translate>
圖二:
從右邊進入:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0"
android:duration="300"
>
</translate>
從右邊退出:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%p"
android:toYDelta="0"
android:duration="300"
>
</translate>
下面記錄一些常用屬性:
@android:anim/accelerate_interpolator: 越來越快
@android:anim/decelerate_interpolator:越來越慢
@android:anim/accelerate_decelerate_interpolator:先快後慢
@android:anim/anticipate_interpolator: 先後退一小步然後向前加速
@android:anim/overshoot_interpolator:快速到達終點超出一小步然後回到終點
@android:anim/anticipate_overshoot_interpolator:到達終點超出一小步然後回到終點
@android:anim/bounce_interpolator:到達終點產生彈球效果,彈幾下回到終點
@android:anim/linear_interpolator:均勻速度。
android:duration: 動畫運行時間,定義在多次時間(ms)內完成動畫
android:startOffset: 延遲一定時間後運行動畫
fromXDelta: X軸方向開始位置,可以是%,也可以是具體的像素 具體見圖
toXDelta: X軸方向結束位置,可以是%,也可以是具體的像素
fromYDelta: Y軸方向開始位置,可以是%,也可以是具體的像素
toYDelta: Y軸方向結束位置,可以是%,也可以是具體的像素
在使用過程中我們要是能熟練使用這些屬性也就能作出一些比較好的效果來:比如使用加速器:@android:anim/bounce_interpolator 可以產生彈球落地時的效果。
此處簡單記錄方便後續學習使用。
參考文獻:http://www.cnblogs.com/bavariama/archive/2013/01/29/2881225.html