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);
我正在尝试使用一个简单的翻译,其中我有一个按钮,我想将它移动到另一个按钮所在的位置。问题是当翻译开始时按钮会立即从屏幕上消失,它甚至不会移动。
我的代码:
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);