2014-11-24 32 views
0

我想做一個簡單的活動,它有一個位於屏幕一側的按鈕和一個按鈕。按下按鈕後,我希望船向上移動X距離。該值X由運行時定義的值計算。使用在運行時計算的變量在屏幕上移動圖像

我讀過關於動畫和圖像翻譯的其他堆棧溢出帖子,講述瞭如何使用TranslationAnimation對象和其他相似的類在屏幕上移動圖像,但是我嘗試過的所有內容都需要給定字面值或最終變量。

我需要幫助讓我的圖像通過動態變量在屏幕上移動。這可能嗎?

回答

0

不使用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

+0

我嘗試了一下,但仍然沒有運氣。我最終達成了畫布方法。到目前爲止它看起來很有希望。 – Shadoninja 2014-11-26 23:24:58

相關問題