Android动画学习笔记之补间动画

  

本文实例为大家分享了Android补间动画展示的具体代码,供大家参考,具体内容如下

  

<强>首先看看补间动画的共同属性:

  

时间:动画持续的时间(单位:毫秒),,
  fillAfter:设置为真的,动画转化在动画被结束后被应用,
  fillBefore:设置为真的,动画转化在动画开始前被应用,
  插入器:动画插入器(加速、减速插入器),
  repeatCount:动画重复的次数,
  repeatMode:顺序动画(重启)/倒序动画(反向),
  startOffset:动画之间时间间隔,
  

  

对于动画的创建一般有两种方式:

  

第一种是在res/新建一个动画文件夹,然后在其下面分别建立四种动画,
  第二种方式是通过java代码的方式创建,
  

  

在补间动画中我们通常有以下四种动画:

  

<>强位移动画

  

创建方式一:

  

在动物文件下新建一个翻译资源文件

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;翻译xmlns: android=" http://schemas.android.com/apk/res/android "      android: fromXDelta=" 0 "//设置从x的哪个点起,也可以设置为百分比,以控件的宽为基准   android: toXDelta=" 100 "//设置移动到目标x点   android: fromYDelta=" 0 "//设置从y的哪个点起,也可以设置为百分比,以控件的高为基准   android: toYDelta=" 0 "//设置移动到目标y点   android: repeatCount=" 2 "//动画重复两次,实际上你会发现是重复3次//(重启模式下执行相同方向3次)//这里的意思是,在首次执行完之后再重复2次//所以总的执行次数为n + 1次//如果是反向模式下,则反序移动也算一次,所以在反序模式下//往同一方向只有两次,加上反序的一次刚好就是3次      android: repeatMode="启动"//沿当前方向顺序移动一次,没有反序移动,//如果设置为反向则有一次顺序/反序移动的操作,   android:持续时间=" 2000 "//完成该动作需要2秒   比;   & lt;/translate>//通过以下代码注册该动画   私人空间creatTranslateByInflate () {   动画动画=AnimationUtils。loadAnimation(这个,R.anim.translate);   mCircle.startAnimation(动画);   }      

创建方式二:(代码创建)

        私人空间creatTranslateByCode () {   TranslateAnimation动画=new TranslateAnimation (0, 100, 0, 0);   animation.setDuration (2000);   animation.setRepeatMode (Animation.REVERSE);   animation.setRepeatCount (2);   mCircle.startAnimation(动画);   }      

<>强旋转动画

  

创建方式一:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;旋转xmlns: android=" http://schemas.android.com/apk/res/android "   android: fromDegrees=" 0 "//起始的角度数,   android: toDegrees=" 180 "//终止的角度,顺时针(起始度& lt;终止的角度)逆时针//(起始度比;终止的角度)//这里就是顺时针的旋转180   android: pivotX=" 50% "//旋转中轴的x点,50%表示以控件宽为基准,在控件的中间x点   android: pivotY=" 50% "//旋转中轴的y点,50%表示以控件高为基准,在控件的中间y点   android:持续时间=" 2000 "   android: repeatMode=胺聪颉?   android: repeatCount=" 2 "      比;   & lt;/rotate>//通过以下代码注册该动画   私人空间createRotateByInflate () {   动画动画=AnimationUtils。loadAnimation(这个,R.anim.rotate);   mCircle.startAnimation(动画);   }      

创建方式二:(代码创建)

        私人空间createRotateByCode () {   浮动pivotX=mCircle.getWidth ()/2.0 f;   浮动pivotY=mCircle.getHeight ()/2.0 f;   RotateAnimation动画=new RotateAnimation (0 180 pivotX pivotY);   animation.setDuration (2000);   animation.setRepeatMode (Animation.REVERSE);   animation.setRepeatCount (2);   mCircle.startAnimation(动画);   }      

<强>缩放动画

  

创建方式一:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;规模xmlns: android=" http://schemas.android.com/apk/res/android "   android: fromXScale=" 0.1 "//android: toXScale=" 1.0 "//android: fromYScale=" 0.1 "   android: toYScale=" 1.0 "   android: pivotY=?0%”   android: pivotX=?0%”   android:持续时间=" 2000 "   android: repeatMode=胺聪颉?   android: repeatCount=?”比;   & lt;/scale>//通过以下代码注册该动画   私人空间createScaleByInflate () {   动画动画=AnimationUtils。loadAnimation(这个,R.anim.scale);   mCircle.startAnimation(动画);   }

Android动画学习笔记之补间动画