2015-11-04 102 views
-1

我試圖更改函數時間中按鈕位置的Y位置。
所以,舉例來說,在時間0:在Y斧按鈕位置是0
在時間1秒:在Y斧按鈕位置是2更改按鈕位置的時間

我可以使用margin_bottom或margin_top,但我只是不知道該怎麼做。

Final chrono = (Chronometer) findViewByID(R.id.Chrono) 
long timeElapsed = SystemClock.elapsedRealtime() - chrono.getBase(); 
float y = 1000*(float)timeElapsed; 
button1.setY(y); 

我試過這個,但它不起作用。
如果您需要更多詳細信息,告訴我。

對不起,我的英語不好。

+2

不會Animtaion滿足您的需求? –

+0

是,我想動畫 –

+0

不相關的代碼:軸是單數在圖上軸。斧是在樹上擺動的單數軸。我想你在這裏。我將從現在開始使用「ax」,因爲它有一個更好的環。 –

回答

1

我建議使用Animator。這將是一個簡單的Y軸動畫

Final chrono = (Chronometer) findViewByID(R.id.Chrono) 
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(chrono , 
     "translationY", y); 
objectAnimator.setDuration(700); //duration of the animation 
objectAnimator.start(); 

這裏有一個很好的教程,讓你開始

http://www.vogella.com/tutorials/AndroidAnimation/article.html#animations_animator

和Android文檔

http://developer.android.com/guide/topics/graphics/prop-animation.html

+0

謝謝你,我會用動畫 –

+0

@mortimer_onche。我會考慮選擇其中一個答案,以便可以關閉該問題 – cjds

0

我理解你。

塞蒂()和setX的()似乎什麼也不做

根據您的佈局:(...

你應該需要修改的LayoutParams,我不會asume任何這樣你就可以查看全過程。

RelativeLayout rl = new RelativeLayout(this); 
Button b = new Button(this); 
RelativeLayout.LayoutParams prms = new RelativeLayout.LayoutParams(Width,Heigh); 
prms.setMargins(left,up,right,down); //Here you set your X,Y at left,up 
rl.addView(b,prms); 

隨着該佈局,你只需要改變按鈕的LayoutParams並設置保證金要定位。

當然,如果你想插值使用動畫,這並不是一帆風順的。

對於動畫使用TranslateAnimation類允許您指定的結束座標基於視圖的相對位置(指+ =代替=等)

希望這有助於。

+0

是的,我將使用TranslateAnimation,謝謝! –

0

你可能想是這樣的:

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(button1, 
      "translationY", here put the value you want animated); 
    objectAnimator.setDuration(700); //duration of the animation 
    objectAnimator.start(); 
public static ObjectAnimator ofFloat (Object target, String propertyName, float... values) 

在API級別11 構造並返回浮點值之間的動畫ObjectAnimator。一個單一的價值意味着那個價值是被動畫的價值。兩個值意味着開始和結束值。超過兩個值意味着一個起始值,沿途動畫的值和一個結束值(這些值將在動畫的持續時間內均勻分佈)。

參數

target對象,其屬性是動畫。這個對象應該有一個名爲setName()的公共方法,其中name是propertyName參數的值。

propertyName的屬性的名稱被動畫。

values的一組動畫將隨着時間的推移之間的動畫的值。

Returns ObjectAnimator對象設置爲在給定值之間進行動畫處理。

ObjectAnimator Documentation