Android的View动画有透明度动画、旋转动画、缩放动画、位移动画,以及它们几种的组合,它控制的是整个view。

优点:

效率比较高

缺点:

视图动画改变的只是显示,当动画完成后,其响应事件的位置还在原来坐标,如使用位移动画后,Button从(x1, y1)移动到了(x2, y2),但它不会在(x2, y2)有交互事件而仍然是在(x1, y1)

1. 透明度动画

AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);alphaAnimation.setDuration(2000);imageViewAniTes.startAnimation(alphaAnimation);
首先构造一个透明动画对象,并指定透明度从多少变化到多少以及动画的变化时间,然后要使用动画的widget调用startAnimation即可。

2. 旋转动画

RotateAnimation rotateAnimation = new RotateAnimation(0, 360,        RotateAnimation.RELATIVE_TO_SELF, 0.5f,        RotateAnimation.RELATIVE_TO_SELF, 0.5f);rotateAnimation.setDuration(2000);imageViewAniTes.startAnimation(rotateAnimation);

这里的旋转动画指定从0到360度转,并且调用了重载的构造函数说明以自身中心为原点进行旋转。

3. 位移动画

TranslateAnimation translateAnimation = new TranslateAnimation(50, 10, 50, 10);translateAnimation.setDuration(2000);imageViewAniTes.startAnimation(translateAnimation);

这里分别指定了位移动画X轴的起点值和终点值以及Y轴的起点和终端值。


注意:

动画默认接收后会回到原来起始位置,要在动画结束后保持终点位置,需要调用下面这个方法:

translateAnimation.setFillAfter(true);

4. 缩放动画

ScaleAnimation scaleAnimation = new ScaleAnimation(0, 2, 0, 2);scaleAnimation.setDuration(5000);imageViewAniTes.startAnimation(scaleAnimation);

这里指定了缩放动画X轴起点坐标以及缩放完成后,X高相对原来的倍数,Y轴同理。

5. 视图动画组合AnimationSet

AnimationSet animationSet = new AnimationSet(true);animationSet.setDuration(2000);AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.5f, 1);alphaAnimation1.setDuration(2000);animationSet.addAnimation(alphaAnimation1);ScaleAnimation scaleAnimation1 = new ScaleAnimation(0, 2, 0, 2);scaleAnimation1.setDuration(2000);animationSet.addAnimation(scaleAnimation1);imageViewAniTes.startAnimation(animationSet);
这里新建了一个动画集合对象,并添加了透明动画和缩放动画,把这个动画集合应用到view上就是两个动画同时作用的效果。

在抽象基类Animation可以看到这个监听器:

因此我们可以通过给动画对象setAnimationListener来监听动画的生命周期并按需执行对应操作。

在Android3.0之后,属性动画的出现,如常用的ObjectAnimator,因为其效果更丰富,应用比视图动画更多,它可以设置动画帧之间的间隙时间、调整帧率从而减少动画过程中频繁绘制界面,这样就减少了CPU的资源消耗。

更多相关文章

  1. Android(安卓)属性动画看这篇就够了
  2. Android仿“知乎”隐藏标题栏、回答详情页动画效果
  3. Android中ImageView的scaleType 属性说明。
  4. [翻译]Android单手指缩放-第四部分(Android(安卓)one finger zoom
  5. Android(安卓)Studio 学习笔记(五):WebView 简单说明
  6. Android(安卓)帧(frame)动画
  7. 初学Android,图形图像之补间动画(三十六)
  8. Android系统移植与调试之------->如何修改开机动画的两种方式剖
  9. Android(安卓)Fragment 体系源码跟踪笔记(3)

随机推荐

  1. Android常用工具使用
  2. Android多网卡
  3. Android 开发者的 Flutter(五) —— Flutte
  4. 《论Android的发展方向(个人见解)》
  5. 【Android】Content Provider基础之SQL
  6. AndroidManifest.xml详解
  7. 深入浅出Android Gradle构建系统(三:buil
  8. Android实现透明指示层
  9. Android NDK编译 ndk-build方式
  10. Android游戏开发之旅系列一