知识点
12个动画准则
栅格图和矢量图
动画设计原则
5种安卓动画
贝塞尔曲线
VectorDrawable
动画基础
什么是动画
12个动画原则(上)
挤压和拉伸(Squash and stretch)
预备动作(Anticipation)
登台(Staging)
连续动作和姿态对应(Straight-Ahead Action and Pose-to-Pose)
动作的惯性跟随和重叠(Follow Through and Overlapping Action)
缓进缓出(Slow In and Slow Out)
12个动画原则(下)
弧线运动(Arc)
次要动作(Secondary Action)
时间节奏(Timing)
夸张(Exaggeration)
扎实的描绘(Solid drawing)
吸引力(Appeal)
动画素材与设计原则
栅格图和矢量图 https://blog.csdn.net/huangfei711/article/details/51490790?utm_source=itdadao&utm_medium=referral
SVG
设计原则-Google Material Design :http://design.1sters.com/material_design/material-design/introduction.html
5种动画类型项目详解
变换动画(Tween Animation)
AlphaAnimation :渐变透明度动画
RotateAnimation :旋转动画
ScaleAnimation :渐变尺寸缩放画
TranslateAnimation :位移动画
AnimationSet :组合动画
实现的两种方式
通过配置文件
纯Java代码
AlphaAnimation
fromAlpha:开始时透明度
toAlpha: 束时透明度
(取值范围: 0.0-1.0 0.0表示完全透明, 1.0表示完全不透明)
//通过加载配置文件实现透明度动画
void onAlphaAnimationByFile(View view) {
Animation alphaAnimation = AnimationUtils.LoadAnimation(this, R. anim.alpha);
_imageview.startAnimation(alphaAnimation);
}
//通过代码实现透明度动画
void onAlphaAnimationByCode(View view) {
Animation alphaAnimation = new AlphaAnimation(0.1f,1.0f);
alphaAnimation. setDuration (2000);//动画的持续的时间
alphaAnimation. setRepeatCount (2);//动画的重复次数
_imageview. startAnimation(alphaAnimation);//开始动画
}
RotateAnimation
fromDegrees:动画开始时的角度
toDegrees:动画结束时的角度,正值代表顺时针
pivotx:旋转中心点的X坐标
pivotY:旋转中心点的Y坐标
ScaleAnimation
fromXScale :动画起始时X坐标
fromYScale :动画起始时Y坐标
toxScale:动画结束时X坐标
toYScale:动画结束时Y坐标
pivotx:动画缩放中心点的X坐标
pivotY:动画缩放中心点的Y坐标
TranslateAnimation
fromXDelta :动画开始点的X轴坐标
fromYDelta :动画开始点的Y轴标
toXDelta :动画结束点的X轴坐标
toYDelta :动画结束点的Y轴坐标
帧动画
节点
<animation-list>:必须作为根元素,可以包含一个或多个
<item元素 <item>:代表一帧动画
属性
oneshot:若等于true,动画只执行一次;否则一直循环。
drawable:当前帧所对应的图片资源。
duration:当前帧持续的时长,单位毫秒。
void onFrameAnimationByFile(View view) {
imageView. setImageResource(R. drawable. frame_anim);
AnimationDrawable animationDrawable = (AnimationDrawable) _imageView.getDrawable();
animationDrawable.start();
}
void onFrameAnimationByCode(View view) {
AnimationDrawable animation = new AnimationDrawable();
for (int iF 0; i< 70; i++) {
int id = getResources ().getIdentifier("flash1675-" +i, "drawable", getPackageName());
Drawable drawable = getResources().getDrawable(id);
//调用addFrame()方法依次添加drawable对象
animation. addFrame (drawable, 100);
}
//添加到View中
animation. setOneShot (false);
_imageView. setImageDrawable(animation);
//启动动画
animation.start();
}
布局动画
属性动画
ValueAnimator
ObjectAnimator
AnimatorSet
Animator监听器
粒子动画(Particle Animation)