From 9b5eb9235926545305ffd62418225952d13356db Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Sat, 29 Dec 2018 15:05:22 +0800 Subject: [PATCH] add Animator --- blogs/Animator.md | 132 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 blogs/Animator.md diff --git a/blogs/Animator.md b/blogs/Animator.md new file mode 100644 index 0000000..7d97f69 --- /dev/null +++ b/blogs/Animator.md @@ -0,0 +1,132 @@ +--- +Animator +--- + +#### 目录 + +1. 思维导图 +2. 帧动画 + - 使用方式 + - 优缺点 + - 应用场景 +3. 补间动画 + - 位移动画 + - 缩放动画 + - 旋转动画 + - 透明度动画 + - 组合动画 + - 优缺点 + - 应用场景 +4. 属性动画 +5. 参考 + +#### 思维导图 + +#### 帧动画 + +##### 使用方式 + +1. xml 定义方式 + + 在 drawable 目录下定义一个 drawable-list,然后给图片设置 res 就好了。 + + ```xml + + + + + + //... + + ``` + + ```java + mIvFrame.setImageResource(R.drawable.anim_frame); + AnimationDrawable drawable = (AnimationDrawable) mIvFrame.getDrawable(); + drawable.start(); + drawable.stop(); + ``` + +2. Java 代码实现 + + 其实就是用代码构建 AnimationDrawable。 + + ```java + mAnimationDrawable=new AnimationDrawable(); + for (int i = 0; i < 10; i++) { + if (i<5){ + mAnimationDrawable.addFrame(getDrawable(R.drawable.ic_vip),100); + }else { + mAnimationDrawable.addFrame(getDrawable(R.drawable.ic_clouse),100); + } + } + mIvFrame.setImageDrawable(mAnimationDrawable); + mAnimationDrawable.start(); + mAnimationDrawable.stop(); + ``` + +##### 优缺点 + +优点:使用简单 + +缺点:图片是全部加载到内存中,可能导致 OOM。 + +##### 应用场景 + +基本上很少使用,可以看成 GIF 图。 + +#### 补间动画 + +##### 位移动画 + +1. xml 定义方式 + + ```xml + + + + + ``` + + ```java + mAnimation = AnimationUtils.loadAnimation(mContext, R.anim.anim_trans); + mIvFrame.startAnimation(mAnimation); + ``` + +2. Java 代码实现方式 + + ```java + TranslateAnimation animation = new TranslateAnimation(0, 100, 0, 100); + animation.setDuration(1000); + animation.setFillAfter(true); + mIvFrame.startAnimation(animation); + ``` + +##### 其他动画 + +类似,不举例了。 + +##### 优缺点 + +优点:使用简单 + +缺点:只改变显示,不改变实际属性 + +##### 应用场景 + +基本上大部分动画都能实现,常见于 Activity 转场动画等等 + +#### 属性动画 + +![](https://i.loli.net/2018/12/29/5c271c4643fc8.png) + + + +#### 参考 + +[Android 动画 Animator 家族使用指南](https://juejin.im/post/5c245f086fb9a049c043146a) \ No newline at end of file