dus*_*usm 6 android relativelayout android-animation android-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);
Run Code Online (Sandbox Code Playgroud)
当我尝试添加动画时,它没有.
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)
{
}
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激 :)
Shi*_*e85 14
你有没有尝试过:
_buttonC.animate().translationX(parentCenterX - _buttonC.getWidth()/2).translationY(parentCenterY - _buttonC.getHeight()/2);
Run Code Online (Sandbox Code Playgroud)
当然,您必须计算父centerX和centerY:
float parentCenterX = parent.getX() + parent.getWidth()/2;
float parentCenterY = parent.getY() + parent.getHeight()/2;
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
8409 次 |
| 最近记录: |