“平移animation”控制布局或按钮的位置和位置,或者应用animation的任何视图。 它可以在x方向或y方向上移动对象。
句法 :
TranslateAnimation transAnimation= new TranslateAnimation(fromXposition, toXPosition, fromYPosition, toYPosition);
fromXposition – animation开始的x坐标
toXPosition – animation结束的x坐标
fromYPosition – animation开始的y坐标。
toYPosition – animation结束的y坐标。
1)如果我们只想在X direction进行平移,那么我们将fromPosition和toYPosition设置为零。
2)如果我们只想在Y direction进行平移,那么我们将fromXPosition和toXPosition设置为零。
还有另一种方法,我们在res文件夹中创建一个anim文件夹。 在这个文件夹中,我们添加了animationxml。我们使用translate标签来指定属性值。
在下面的xml中
android:duration定义animation的执行时间
android:repeatCount指定no。 应该重复animation的次数,
android:fromYDelta定义animation应该从哪里开始的y坐标
android:toYDelta定义animation结束的y坐标。
line_translate.xml
码:
Animation lineTranslate; //loading xml from anim folder Animation localAnimation = AnimationUtils.loadAnimation(this, R.anim.line_translate); //You can now apply the animation to a view view.startAnimation(transAnimation);
翻译animation可以改变对象的视觉外观,但是它们不能更改对象本身。 也就是说,如果您将转换animation应用于视图,它将移动到新位置,但其点击事件不会被触发,而点击事件仍将在其先前位置被触发。 发生这种情况是因为视图仍处于原始位置。
为了克服这个问题,我们可以使用实际移动对象的ObjectAnimation 。 对象animation是实际移动对象的唯一animation。 您可以使用ObjectAnimator创建翻译animation。
ObjectAnimator transAnimation= ObjectAnimator.ofFloat(view, propertyName, fromX, toX); transAnimation.setDuration(3000);//set duration transAnimation.start();//start animation
view -this是要应用animation的视图
propertyName – 要设置animation的属性。
FromX,toX-animation随时间变化的一组值。
希望这会给你很好的理解。