0
我想做一個簡單的活動,它有一個位於屏幕一側的按鈕和一個按鈕。按下按鈕後,我希望船向上移動X距離。該值X由運行時定義的值計算。使用在運行時計算的變量在屏幕上移動圖像
我讀過關於動畫和圖像翻譯的其他堆棧溢出帖子,講述瞭如何使用TranslationAnimation對象和其他相似的類在屏幕上移動圖像,但是我嘗試過的所有內容都需要給定字面值或最終變量。
我需要幫助讓我的圖像通過動態變量在屏幕上移動。這可能嗎?
我想做一個簡單的活動,它有一個位於屏幕一側的按鈕和一個按鈕。按下按鈕後,我希望船向上移動X距離。該值X由運行時定義的值計算。使用在運行時計算的變量在屏幕上移動圖像
我讀過關於動畫和圖像翻譯的其他堆棧溢出帖子,講述瞭如何使用TranslationAnimation對象和其他相似的類在屏幕上移動圖像,但是我嘗試過的所有內容都需要給定字面值或最終變量。
我需要幫助讓我的圖像通過動態變量在屏幕上移動。這可能嗎?
不使用Animation
,使用Animator
,這是做事的新方式。
您可以爲視圖的任何屬性「設置動畫」(在這種情況下,您可以使用ImageView
)。在這種情況下,您可以對邊距進行動畫處理以獲得所需的效果。你想從某個值layout_marginTop
動畫0
View shipView = ...;
ValueAnimator animator = ValueAnimator.ofInt(100, 0);
animator.setDuration(1000);
animator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) shipView.getLayoutParams();
lp.setMargins(0, (Integer) animation.getAnimatedValue(), 0, 0);
shipView.setLayoutParams(lp);
}
});
animator.start();
注意到這一假設您shipView
處於RelativeLayout
。
我嘗試了一下,但仍然沒有運氣。我最終達成了畫布方法。到目前爲止它看起來很有希望。 – Shadoninja 2014-11-26 23:24:58