我想将视图(以我的例子 - 一个按钮,但实际上并不重要)移动到屏幕的中心。 当我运行没有动画的移动时,它可以工作。然而,我很难决定我应该使用哪些动画来做,因为TranslateAnimation只允许我这样做,但指定了我没有的确切的x,y坐标(用度量值试过,但是计算不起作用,我不想使用这种方法)。如何在Android中使用动画将视图移动到屏幕中心
因此,此代码的工作,而不动画:
RelativeLayout.LayoutParams parms2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
parms2.addRule(RelativeLayout.CENTER_VERTICAL);
parms2.addRule(RelativeLayout.CENTER_HORIZONTAL);
_buttonC.setLayoutParams(parms2);
,当我尝试添加动画,事实并非如此。
ObjectAnimator ani = ObjectAnimator.ofFloat(_buttonC, "Y", 2000);
ani.setDuration(4000);
ani.addListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationStart(Animator animation) {
RelativeLayout.LayoutParams parms2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
parms2.addRule(RelativeLayout.CENTER_VERTICAL);
parms2.addRule(RelativeLayout.CENTER_HORIZONTAL);
_buttonC.setLayoutParams(parms2);
}
@Override
public void onAnimationEnd(Animator animation)
{
}
});
任何帮助,将不胜感激:)
它应该是' translationX(parentCenterX - _buttonC.getWidth()/ 2 - _buttonC.getX())' – user3995789
您救了我.. –