我的动画有问题,这是我的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Animation anim= new TranslateAnimation(0, 0, 0, -200);
anim.setDuration(2000);
anim.setFillAfter(true);
findViewById(R.id.button1).startAnimation(anim);
}
}, 2000);
}
主要布局是:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:text="Button"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:minHeight="120sp"/>
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:text="Button"
android:layout_height="fill_parent"
android:layout_below="@id/button1"
android:minHeight="120sp"/>
</RelativeLayout>
我希望button2与button1一起移动。我知道我可以对两个按钮应用相同的动画并且它们一起移动但是按钮2将移动到底部边缘。
有人知道我该如何解决它?
答案 0 :(得分:2)
我不确定你真正想要达到的目标。我猜你想在动画结束后将button2保留在布局的顶部。我是对的吗?
据我所知,在Android中,视图在动画其他视图时不会重新定位。在将视图的可见性设置为GONE时,它们会重新定位。
因此你可以:
将button1的可见性设置为在动画之后消失:
button1.setVisibility( View.GONE );
答案 1 :(得分:2)
首先,Android动画不会影响布局。你的按钮没有真的移动,它只是看起来像。
其次,如果您希望两个按钮一起移动,请将它们放在线性布局中并为其设置动画。