我试图相对于他们的起点移动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
。
问题是动画运行,但按钮在动画结束时返回到原始位置。我希望他们留在终点。
答案 0 :(得分:2)
showMore.setFillAfter(真); 这将放在您的Java代码中。 我希望它会起作用。如果你想在完成动画后使用按钮,你将放置onAnimationEnd(动画动画),使用你的布局放置按钮。
答案 1 :(得分:1)
您需要两组按钮,在播放动画后,您必须使一组消失,可能在其父级或每个按钮上使用View.setVisibility(View.GONE)
。
答案 2 :(得分: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最低级别为11