Android动画详解,PopupWindow和Dialog区别

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage); Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); spaceshipImage.startAnimation(hyperspaceJumpAnimation);

  • 1

  • 2

  • 3

  • 1

  • 2

  • 3

上面就是一个标准的使用我们定义的补间动画的模板。至于补间动画的使用,Animation还有如下一些比较实用的方法介绍:

| Animation类的方法 | 解释 |

| — | — |

| reset() | 重置Animation的初始化 |

| cancel() | 取消Animation动画 |

| start() | 开始Animation动画 |

| setAnimationListener(AnimationListener listener) | 给当前Animation设置动画监听 |

| hasStarted() | 判断当前Animation是否开始 |

| hasEnded() | 判断当前Animation是否结束 |

既然补间动画只能给View使用,那就来看看View中和动画相关的几个常用方法吧,如下:

| View类的常用动画操作方法 | 解释 |

| — | — |

| startAnimation(Animation animation) | 对当前View开始设置的Animation动画 |

| clearAnimation() | 取消当View在执行的Animation动画 |

到此整个Android的补间动画常用详细属性及方法全部介绍完毕,如有特殊的属性需求可以访问Android Developer查阅即可。如下我们就来个综合大演练。

2-4 视图动画注意事项

关于视图动画(补间动画)的例子我就不介绍了,网上简直多的都泛滥了。只是强调在使用补间动画时注意如下一点即可:

特别特别注意:补间动画执行之后并未改变View的真实布局属性值。切记这一点,譬如我们在Activity中有一个Button在屏幕上方,我们设置了平移动画移动到屏幕下方然后保持动画最后执行状态呆在屏幕下方,这时如果点击屏幕下方动画执行之后的Button是没有任何反应的,而点击原来屏幕上方没有Button的地方却响应的是点击Button的事件。

2-5 视图动画Interpolator插值器详解

2-5-1 插值器简介

介绍补间动画插值器之前我们先来看一幅图,如下:

这里写图片描述

可以看见其实各种插值器都是实现了Interpolator接口而已,同时可以看见系统提供了许多已经实现OK的插值器,具体如下:

| java类 | xml id值 | 描述 |

| — | — | — |

| AccelerateDecelerateInterpolator | @android:anim/accelerate_decelerate_interpolator | 动画始末速率较慢,中间加速 |

| AccelerateInterpolator | @android:anim/accelerate_interpolator | 动画开始速率较慢,之后慢慢加速 |

| AnticipateInterpolator | @android:anim/anticipate_interpolator | 开始的时候从后向前甩 |

| AnticipateOvershootInterpolator | @android:anim/anticipate_overshoot_interpolator | 类似上面AnticipateInterpolator |

| BounceInterpolator | @android:anim/bounce_interpolator | 动画结束时弹起 |

| CycleInterpolator | @android:anim/cycle_interpolator | 循环播放速率改变为正弦曲线 |

| DecelerateInterpolator | @android:anim/decelerate_interpolator | 动画开始快然后慢 |

| LinearInterpolator | @android:anim/linear_interpolator | 动画匀速改变 |

| OvershootInterpolator | @android:anim/overshoot_interpolator | 向前弹出一定值之后

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享

回到原来位置 |

| PathInterpolator |   | 新增,定义路径坐标后按照路径坐标来跑。 |

如上就是系统提供的一些插值器,下面我们来看看怎么使用他们。

2-5-2 插值器使用方法

插值器的使用比较简答,如下:

<set android:interpolator="@android:anim/accelerate_interpolator"> ... </set>

  • 1

  • 2

  • 3

  • 1

  • 2

  • 3

2-5-3 插值器的自定义

有时候你会发现系统提供的插值器不够用,可能就像View一样需要自定义。所以接下来我们来看看插值器的自定义,关于插值器的自定义分为两种实现方式,xml自定义实现(其实就是对现有的插值器的一些属性修改)或者java代码实现方式。如下我们来说说。

先看看XML自定义插值器的步骤:

  • 在res/anim/目录下创建filename.xml文件。

  • 修改你准备自定义的插值器如下:

<?xml version="1.0" encoding="utf-8"?> <InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android" android:attribute_name="value" />

  • 1

  • 2

  • 3

  • 4

  • 1

  • 2

  • 3

  • 4

  • 在你的补间动画文件中引用该文件即可。

可以看见上面第二步修改的是现有插值器的一些属性,但是有些插值器却不具备修改属性,具体如下:

<accelerateDecelerateInterpolator>

无可自定义的attribute。

<accelerateInterpolator>

android:factor 浮点值,加速速率(默认值为1)。

<anticipateInterploator>

android:tension 浮点值&

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值