本文实例为大家分享了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动画学习笔记之补间动画