自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件
自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件
自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件

Android动画

  1. View Animation 视图动画(Tween Animation 补间动画),只能用来设置View的动画
  2. Drawable Animation 帧动画(Frame动画),一帧帧地显示资源文件中的Drawable
  3. Property Animation 属性动画,在android3.0以上的系统才有。这动画可以设置给任何的Object,包括那些还没有渲染到屏幕的view.

为什么要引入属性动画?

  1. 补间动画只能够作用在View上的
  2. 补间动画只能够实现移动、缩放、旋转和淡入淡出这四种动画操作,不能改变View的背景等
  3. 补间动画只是改变了View的显示效果而已,而不会真正去改变View的属性

View Animation 补间动画

视图动画也叫补间动画,指在一个视图容器中执行一些变换。包含有:位置、大小、旋转、透明 补间动画。

一般通过xml实现,不建议是用android代码实现,因为代码实现的可读性比较差。

补间动画的相关类
  • AlphaAnimation <alpha>放在res/anim/目录下 透明渐变动画效果
  • RotateAnimation <rotate>放在res/anim/目录下 旋转转移动画效果
  • ScaleAnimation <scale>放在res/anim/目录下 缩放动画效果
  • TranslateAnimation <translate>放在res/anim/目录下 移动动画效果
  • AnimationSet <set> 放在res/anim/目录下 持有动画的容器

补间动画之RotateAnimation使用

RotateAnimation动画的实现可以分类两种,一种是使用Java代码实现,另外一种使用xml。

使用java代码实现

RotateAnimation初始化代码片段

  1. /**
  2. * init animation 1
  3. */
  4. private void initAnimation1() {
  5. /**
  6. * 0 - 359度旋转
  7. * 相对于自身中心位置
  8. */
  9. RotateAnimation mRotateAnimation = new RotateAnimation(0, 359,
  10. Animation.RELATIVE_TO_SELF, 0.5f,
  11. Animation.RELATIVE_TO_SELF, 0.5f);
  12. //设置线性插值,可以解决旋转一圈后卡顿问题
  13. mRotateAnimation.setInterpolator(new LinearInterpolator());
  14. //设置旋转一圈时间
  15. mRotateAnimation.setDuration(1000);
  16. //设置重复旋转次数, Animation.INFINITE表示无限次
  17. mRotateAnimation.setRepeatCount(Animation.INFINITE);
  18. //设置旋转模式[restart 重新旋转; reverse 旋转一圈后反转]
  19. mRotateAnimation.setRepeatMode(Animation.RESTART);
  20.  
  21. return;
  22. }
复制

动画的启动和停止

  1. //启动动画
  2. imageView.startAnimation(mRotateAnimation);
  3.  
  4. // 停止动画
  5. imageView.clearAnimation();
复制
使用xml实现

res/anim/anim_rotate.xml

  1. <set xmlns:android="http://schemas.android.com/apk/res/android">
  2.  
  3. <rotate
  4. android:duration="1500"
  5. android:fromDegrees="0"
  6. android:pivotX="50%"
  7. android:pivotY="50%"
  8. android:repeatCount="-1"
  9. android:repeatMode="reverse"
  10. android:toDegrees="359" />
  11.  
  12. <!--
  13. duration : 一圈旋转时间
  14. fromDegrees : 开始角度
  15. toDegrees : 结束角度
  16. pivotX : 旋转中心距离view的左顶点为50%距离
  17. pivotY : 旋转中心距离view的左顶点为50%距离
  18. repeatCount="-1":重复次数,-1为一直重复
  19. repeatMode="restart":重复模式,restart从头开始重复 reverse 旋转完后反转旋转
  20. -->
  21.  
  22. </set>
复制
  1. /**
  2. * init animaton 2
  3. */
  4. private void initAnimation2() {
  5. //加载xml中的动画
  6. Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate);
  7. //设置线性插值
  8. mAnimation.setInterpolator(new LinearInterpolator());
  9. return;
  10. }
复制

参考文章

  1. android动画
  2. [摘抄]Android动画介绍和属性意义介绍(1)
  3. Android中如何使用rotate实现图片不停旋转的效果与动画的停止
自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件

相关文章

自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件

暂无评论

none
暂无评论...