android 以像素为单位转换动画,按钮消失

android translateanimation in pixels, button disappears

我正在尝试使用一个简单的翻译,其中我有一个按钮,我想将它移动到另一个按钮所在的位置。问题是当翻译开始时按钮会立即从屏幕上消失,它甚至不会移动。

我的代码:

Button poli1 = checkPosPoli1();

             TranslateAnimation animpoli1 = new TranslateAnimation(checkPosPoli1().getLeft(),checkBtn().getLeft() , checkPosPoli1().getTop(), checkBtn().getTop());
             animpoli1.setDuration(10000);
             animpoli1.setFillAfter( true );
             poli1.startAnimation(animpoli1);

checkPosPoli1() 和 checkBtn return 一个按钮,我已经在控制台中打印了它们的值,没问题。

看看 TranslateAnimation 的文档:http://developer.android.com/reference/android/view/animation/TranslateAnimation.html。您正在使用的构造函数是这个:TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) 这意味着如果视图已经在其起始位置,您希望第一个和第三个参数为 0,否则您将在动画开始时将视图移开.

TranslateAnimation animpoli1 = new TranslateAnimation(0, targetX - currentX, 0, targetY - currentY);

如果你想让它相对于父级,你可以使用第二个构造函数:

TranslateAnimation animpoli1 = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, currentX, targetX, Animation.RELATIVE_TO_PARENT, currentY, targetY);