鉴于今天是劳动节,鼓励自己整理一下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
剩下的下次讲。
网友评论