另外我想知道翻译动画的工作原理以及它接受的参数是什么?
我的代码是……
RelativeLayout.LayoutParams lParams = (LayoutParams) spreadImage .getLayoutParams(); TranslateAnimation ta ta = new TranslateAnimation(lParams.leftMargin,randomLeftMarginsList.get(currentSpreadIndex),lParams.topMargin,ta.setAnimationListener(this); ta.setDuration(ApplicationConstant.PUZZLE_GAME_IMAGE_SPREADING_TIME); spreadImage.startAnimation(ta);
提前致谢.
解决方法
句法 :
TranslateAnimation transAnimation= new TranslateAnimation(fromXposition,toXPosition,fromYPosition,toYPosition);
fromXposition- x动画开始的坐标
toXPosition-x动画结束的坐标
fromYPosition-从动画应该开始的坐标.
toYPosition-动画结束的坐标.
1)如果我们只想在X方向上进行平移,那么我们将fromPosition和toYPosition设置为零.
2)如果我们只想在Y方向上进行平移,那么我们将fromXPosition和toXPosition设置为零.
还有另一种方法,我们在res文件夹中创建一个anim文件夹.在这个文件夹中,我们添加了动画xml.我们使用translate标签来指定属性值.
在下面的xml中
android:duration定义动画的执行时间
android:repeatCount指定no.应该重复动画的次数,
android:fromYDelta定义动画应该从哪里开始的y坐标
android:toYDelta定义动画结束的y坐标.
line_translate.xml
<set xmlns:android=”http://schemas.android.com/apk/res/android”> <translate android:duration=”300″ android:repeatCount=”1 android:fromYDelta=”0.0″ android:toYDelta=”174.0″ />
码:
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);
翻译动画可以改变对象的视觉外观,但是它们不能更改对象本身.也就是说,如果您将转换动画应用于视图,它将移动到新位置,但其点击事件不会被触发,而点击事件仍将在其先前位置被触发.发生这种情况是因为视图仍处于原始位置.
为了克服这个问题,我们可以使用实际移动对象的ObjectAnimation.对象动画是实际移动对象的唯一动画.您可以使用ObjectAnimator创建翻译动画.
ObjectAnimator transAnimation= ObjectAnimator.ofFloat(view,propertyName,fromX,toX); transAnimation.setDuration(3000);//set duration transAnimation.start();//start animation
view -this是要应用动画的视图
propertyName – 要设置动画的属性.
FromX,toX-动画随时间变化的一组值.
希望这会给你很好的理解.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。