gpt4 book ai didi

android - 如何在android中使用动画将 View 移动到屏幕中心

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:49 26 4
gpt4 key购买 nike

我想将一个 View (在我的例子中是一个按钮,但这并不重要)移动到屏幕中央。当我在没有动画的情况下运行移动时,它可以工作。但是,我很难决定应该使用哪些动画来执行此操作,因为 TranslateAnimation 只允许我这样做但指定了我没有的确切 x、y 坐标(尝试使用指标,但计算没有用,我不想使用这种方法)。

因此,这段代码可以在没有动画的情况下运行:

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)
{

}
});

任何帮助将不胜感激:)

最佳答案

你试过吗:

_buttonC.animate().translationX(parentCenterX - _buttonC.getWidth()/2).translationY(parentCenterY - _buttonC.getHeight()/2);

当然你必须计算父centerX和centerY:

float parentCenterX = parent.getX() + parent.getWidth()/2;
float parentCenterY = parent.getY() + parent.getHeight()/2;

希望这会有所帮助。

关于android - 如何在android中使用动画将 View 移动到屏幕中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com