我是Android的新手。我正在尝试在按钮上翻译动画。我在xml中添加了一个按钮,当单击时,另一个以编程方式添加的按钮从当前位置移动到屏幕顶部并得到修复。但问题是,它不是从当前位置开始,而是从位于下方的位置开始,而不是固定在顶部。请有人帮助我,如果可以的话。提前致谢。 这是我正在使用的代码: -
ll= (LinearLayout) findViewById(R.id.ll);
final int width = this.getResources().getDisplayMetrics().widthPixels;
final int height= this.getResources().getDisplayMetrics().heightPixels;
final Button btn=new Button(MainActivity.this);
btn.setText("Message");
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btn.setX(width/3);
btn.setY(height/3);
ll.addView(btn);
Button btn_click= (Button) findViewById(R.id.buttonbottom);
btn_click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Animation animate= new TranslateAnimation(btn.getX(),btn.getX(), btn.getY(), 0);
animate.setDuration(7000);
btn.startAnimation(animate);
}
});
}
和它的xml是: -
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonbottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me" />
</LinearLayout>
答案 0 :(得分:0)
我建议您在/res/anim
文件夹中创建一个xml文件,并使用它来设置按钮的动画。 <translate>
标记android:fromYDelta
和android:toYDelta
作为其属性可能会有所帮助(这两个属性都与您按钮的垂直移动有关),而且由于您的问题属于翻译动画问题的类别。如果你想考虑同样的问题,你可以找到一些很好的解释here。