2011-10-30 82 views
0

我想相對移動3個鍵上的出發點:試圖將按鈕移到另一個點在屏幕上

代碼用於啓動動畫:

protected void showMoreBtns() { 
    Button btn1 = (Button)this.findViewById(R.id.more1btn); 
    Button btn2 = (Button)this.findViewById(R.id.more2btn); 
    Button btn3 = (Button)this.findViewById(R.id.more3btn); 

    Animation showMore = AnimationUtils.loadAnimation(this, R.anim.optionsinup1); 
    btn1.startAnimation(showMore); 

    showMore = AnimationUtils.loadAnimation(this, R.anim.optionsinup2); 
    btn2.startAnimation(showMore); 

    showMore = AnimationUtils.loadAnimation(this, R.anim.optioninup3); 
    btn3.startAnimation(showMore); 
} 

,並且動畫效果定義爲:

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" > 
    <translate 
     android:fromXDelta="0" 
     android:fromYDelta="0" 
     android:toXDelta="-60" 
     android:toYDelta="-30" /> 
</set> 

所有三種動畫遵循相同的格式,其中被修改僅android:toDelta的。

的問題是動畫運行,但按鈕在動畫的最後返回到原來的位置。我希望他們留在終點。

回答

2

showMore.setFillAfter(真); 這將被放置在你的java代碼中。 我希望這將是工作。如果你想用你的佈局在那個地方使用完整的動畫後,你將放置onAnimationEnd按鈕(動畫動畫)按鈕。

1

您需要兩組按鈕,以及動畫播放完畢後,你必須做出一個集消失,可能使用View.setVisibility(View.GONE)其母公司或上的每個按鈕。

+0

是否有一個更簡單的移動元素,以不同的點在屏幕上的方式。 –

1

不知道這是否會幫助你,但我同樣的問題,我是能夠做到這一點使用這些方法來襲, setTranslationX(浮動) setTranslationY(浮動)

你可以使用它像這樣

Button button = (button) findViewById(your id); 
button.setTranslationX(a float value); 

這裏的Android文檔提供更多信息 http://developer.android.com/reference/android/view/View.html#attr_android:translationX

也請注意,Android SDK REQ的最低水平uired是11

+0

它看起來不錯的Android的最新版本,但在我問這個問題的時候,我與Android 2.x的工作,也是最容易SDK 7級或8。 –

相關問題