我正在尝试使用一个简单的翻译,其中我有一个按钮,我想将其移动到另一个按钮所在的位置。事情是,当翻译开始时按钮就会立即从屏幕上消失,它甚至不会移动。
我的代码:
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都返回一个按钮,我在控制台中打印了它们的值,没关系。
答案 0 :(得分:1)
查看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);