我想動畫一個列表,它會隱藏在屏幕下方,bottomMargin是一個負值 然後當我點擊一個按鈕,我動畫它,然後動畫完成後「onAnimationEnd」我修改邊距使其停止在動畫結束的位置。Android動畫,一個簡單的linear_interpolator
它的工作好當動畫的時候,我沒有看到任何東西它進入-ve
但在動畫起來,它的去比它有太多,並修改保證金,做一個壞的後效果「因爲它不是阻止它必須」 這裏是我在做什麼
動畫下來:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<!-- same animation, linear interpolator -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:toYDelta="25%p"
android:duration="500"
/>
</set>
動畫起來:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<!-- same animation, linear interpolator -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:toYDelta="-25%p"
android:duration="500"
/>
</set>
的代碼運行在onAnimationEnd:
MarginLayoutParams params = (MarginLayoutParams) playerLayout.getLayoutParams();
if (params.bottomMargin == 0) {
params.setMargins(0, 0, 0, playerLayout.getHeight()* -1);
} else {
params.setMargins(0, 0, 0, 0);
}
playerLayout.setLayoutParams(params);
什麼是錯的! 在動畫中,動畫區域開始正常出現,然後突然上升到比正常位置快上,然後修改邊緣使其突然重新定位到正常位置。
這裏一個視頻的鏈接顯示的問題https://dl.dropbox.com/u/51616029/irrelevant/20121005323.mp4
我做了,就像你看到的,在動畫完成之後,我添加了下面的邊距「params.setMargins(0,0,0,playerLayout.getHeight()* -1);」 後來,我加了這個「params.setMargins(0,0,0,0);」 – AMTourky
我的建議是讓視圖在向下動畫完成後隱形,並且在向上動畫開始之前可見。根本不用擔心調用'setMargin()',因爲這是不必要的。 – happydude
但我想從該佈局的一部分可見 – AMTourky