Android-Animation 总结(一)

作者: 薛之涛 | 来源:发表于2018-05-06 18:50 被阅读76次

    鉴于今天是劳动节,鼓励自己整理一下android相关的知识,祝所有劳动者节日快乐。

    android 的动画要从3.0为分界线,3.0之前是传统动画,3.0之后出现了属性动画。

    传统动画又分为 帧动画(Frame Animation) 和  补间动画(Tween Animation)

    补间动画细分为:位移(translate)    缩放 (scale)   渐变(alph)    旋转(rotate)

    那我们就从传统动画的Frame Animation 说起吧:

    Android-Animation  帧动画

       frame 在英文中的意思有:电影画面,之前的电影播放是通过一帧一帧的胶片记录影像来播放的。所以我们的帧动画也是通过实现准备好的一张张ui图片按顺序进行展示的。

    第一步:在res的drawalbe文件夹新建文件,如图:

    注释自己看哦!

    第二步: 将xml文件用和AnimationDrawable关联。(我们是xml实现也可以代码实现,demo中有此处省略。。。。)

    AnimationDrawable mAnimationDrawable =(AnimationDrawable) getResources().getDrawable(

    R.drawable.anim_frame);

       //将动画指定到现实的ImageView上。这个Imageview是你自己在Activity中的,你自己指定显示的位置,大小吧。

    比如:

    然后初始化Imageview 在.setBackground(animationDrawable);即可。

    完毕!

    Android-Animation  补间动画

     首先补间动画有四种:translate  位移

                                           scale     缩放

                                             alpha  渐变

                                              rotate  旋转

    话不多说上代码: 对了,我这是xml实现方式,代码实现和它大致一样,set属性就行。

    位移动画:


    绑定:

    //如果代码中定义的话为new translateAnimation=new AlphaAnimation(0.1f, 1.0f);set等属性,其他三种动画都类似

    Animation translateAnimation = AnimationUtils.loadAnimation(TweenAnimationActivity.this, R.anim.translate);

    iv_translate.startAnimation(translateAnimation);

    其他三种也都一样,直接了。

    渐变动画


    缩放动画


    旋转动画


    对了,还可以组合使用:


    绑定方式都一样:


    说一下属性pivotX和pivotX,大家可能有些不太理解,这样说吧,pivoX="50%" 和 pixoY="50%"与pivoX="0%" 和 pixoY="0%"的区别相对于rotate的区别是一个以图片的中心点为圆心旋转,一个以图片的左上角为圆心旋转。

    完毕!

    demo已上传github,地址:

    https://github.com/searchdingding/AnimationDemo

    剩下的下次讲。

    相关文章

      网友评论

        本文标题:Android-Animation 总结(一)

        本文链接:https://www.haomeiwen.com/subject/uuuxrftx.html