帧动画java代码 javafx动画效果( 四 )


AnticipateOvershootInterpolator反向加回弹,先向相反方向改变 , 再加速播放,会超出目的值然后缓慢移动至目的值
BounceInterpolator跳跃,快到目的值时值会跳跃,如目的值100,后面的值可能依次为85,77,70,80,90,100
CycleIinterpolator 循环,动画循环一定次数,值的改变为一正弦函数:Math.sin(2 * mCycles * Math.PI * input)
LinearInterpolator 线性 , 线性均匀改变
OvershottInterpolator 回弹,最后超出目的值然后缓慢改变到目的值
TimeInterpolator 一个接口,允许你自定义interpolator,以上几个都是实现了这个接口
(6)Keyframes:可以让我们定义除了开始和结束以外的关键帧 。KeyFrame是抽象类,要通过ofInt(),ofFloat(),ofObject()获得适当的KeyFrame,然后通过PropertyValuesHolder.ofKeyframe获得PropertyValuesHolder对象,如下:
Keyframe kf0 = Keyframe.ofInt(0, 400);
Keyframe kf1 = Keyframe.ofInt(0.25f, 200);
Keyframe kf2 = Keyframe.ofInt(0.5f, 400);
Keyframe kf4 = Keyframe.ofInt(0.75f, 100);
Keyframe kf3 = Keyframe.ofInt(1f, 500);
PropertyValuesHolder pvhRotation = PropertyValuesHolder.ofKeyframe(width, kf0, kf1, kf2, kf4, kf3);
ObjectAnimator rotationAnim = ObjectAnimator.ofPropertyValuesHolder(btn, pvhRotation);
上述代码的意思是:设置btn对象的width属性值使其:开始时 Width=400,动画开始1/4时 Width=200,动画开始1/2时 Width=400 , 动画开始3/4时 Width=100,动画结束时 Width=500 。
(7)ViewPropertyAnimator:对一个View同时改变多种属性,非常推荐用这种 。该类对多属性动画进行了优化,会合并一些invalidate()来减少刷新视图 。而且使用起来非常简便,但是要求API LEVEL 12,即Android 3.1以上 。仅需要一行代码即可完成水平、竖直移动
myView.animate().translationX(50f). translationY(100f);
(8)常需要改变的一些属性:
translationX,translationY: View相对于原始位置的偏移量
rotation,rotationX,rotationY: 旋转 , rotation用于2D旋转角度 , 3D中用到后两个
scaleX,scaleY: 缩放比
x,y: View的最终坐标,是View的left , top位置加上translationX,translationY
alpha: 透明度
四、最后自己总结一下这三种动画的优缺点:
(1)Frame Animation(帧动画)主要用于播放一帧帧准备好的图片 , 类似GIF图片,优点是使用简单方便、缺点是需要事先准备好每一帧图片;
(2)Tween Animation(补间动画)仅需定义开始与结束的关键?。浠闹屑渲∮上低巢股希?优点是不用准备每一帧,缺点是只改变了对象绘制,而没有改变View本身属性 。因此如果改变了按钮的位置 , 还是需要点击原来按钮所在位置才有效 。
(3)Property Animation(属性动画)是3.0后推出的动画,优点是使用简单、降低实现的复杂度、直接更改对象的属性、几乎可适用于任何对象而仅非View类,缺点是需要3.0以上的API支持 , 限制较大!但是目前国外有个开源库 , 可以提供低版本支持!
【帧动画java代码 javafx动画效果】帧动画java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javafx动画效果、帧动画java代码的信息别忘了在本站进行查找喔 。

推荐阅读