Android动画基础

知识点
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)   

https://threejs.org

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值