你是否觉得别人的APP 丰富多彩,是否又在苦恼自己的APP单调的可怜。
学好动画,让你的APP从此高逼格!哈哈,下面为大家一一解析。
动画的通用属性
duration : 动画的持续事件
fillAfter : 动画播放完成后停在最后一帧
fillBefore : 动画播放完成后停在第一帧
interpolator : 动画的速度(加速丶减速)
repeatCount : 重复的次数
repeatMode : 重复的模式(顺序后倒序,总是顺序)
statrOffset : 延迟多少毫秒在播放
interpolator详解
setInterpolator(Interpolator i):设置动画的变化速度
setInterpolator(new AccelerateDecelerateInterpolator()):先加速,后减速
setInterpolator(new AccelerateInterpolator()):加速
setInterpolator(new DecelerateInterpolator()):减速
setInterpolator(new CycleInterpolator()):动画循环播放特定次数,速率改变沿着正弦曲线
setInterpolator(new LinearInterpolator()):匀速
setInterpolator(new AccelerateDecelerateInterpolator()):先加速,后减速
setInterpolator(new AccelerateInterpolator()):加速
setInterpolator(new DecelerateInterpolator()):减速
setInterpolator(new CycleInterpolator()):动画循环播放特定次数,速率改变沿着正弦曲线
setInterpolator(new LinearInterpolator()):匀速
AnimationListener主要包含三个方法:
onAnimationEnd:动画结束
onAnimationStart:动画开始
onAnimationRepet:动画重复
一 丶 缩放动画
ScaleAnimation
scaleType : 指定图片类型
fitXY : 配置scaleX和scaleY使用,用于定义X轴跟Y轴的缩放倍数
fitStart : 图片显示在开始处,缩放
fitCenter : 图片显示中间 ,缩放
fitEnd : 图片显示在结尾,缩放
center : 图片显示在正中间,不缩放
centerCrop : 图片的短边全部显示,长边进行截取,缩放
centerInSide : 图片的长边全部显示,缩放
setScaleX(float) 设置X轴的缩放比例
setScaleY(float)设置Y轴的缩放比例
二 丶位移动画
TranlateAnimation
duration ; 动画运行时间
startOffset : 延迟一定时间后运行动画
fromXDelta : X轴的方向开始位置
toXDelta : X轴的方向结束位置
fromYDelta :Y轴方向的开始位置
toYDelta : Y轴方向的结束位置
三 丶透明动画
AlphaAnimation
fromAlpha 开始的透明度
toAlpha 结束的透明度
四 丶旋转动画
RotateAnimation
fromDegrees
旋转开始的角度
toDegrees 旋转结束的角度
pivotXType X轴的伸缩模式
可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PAREN
T。
pivotXValue X坐标的伸缩值
pivotYType Y轴的伸缩模式
可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PAREN
T。
pivotYValue Y坐标的伸缩值
五 丶 组合动画
AnimationSet
创建一个AnimationSet对象
然后在把动画添加到AnimationSet对象里面
最后组件开始执行动画
创建一个AnimationSet对象
AnimationSet animationSet = new AnimationSet(true);
// 创建一个AlphaAnimation对象(参数表示从完全不透明到完全透明)
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
// 设置动画执行的时间(单位:毫秒)
alphaAnimation.setDuration(1000);
// 将AlphaAnimation对象添加到AnimationSet当中
animationSet.addAnimation(alphaAnimation);
// 使用ImageView的startAnimation方法开始执行动画
mImageView.startAnimation(animationSet);
// 创建一个AlphaAnimation对象(参数表示从完全不透明到完全透明)
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
// 设置动画执行的时间(单位:毫秒)
alphaAnimation.setDuration(1000);
// 将AlphaAnimation对象添加到AnimationSet当中
animationSet.addAnimation(alphaAnimation);
// 使用ImageView的startAnimation方法开始执行动画
mImageView.startAnimation(animationSet);