本例实现一个图片点击之后先放大再缩小的动画效果
首先:图片的XML
<ImageView android:layout_gravity="center_horizontal" android:scaleType="center" android:id="@+id/red_pic" android:layout_width="180dp" android:layout_height="180dp" android:src="@mipmap/red"/> 接下来:动画效果文件,放置在 res/anim/下 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="false"> <!--fillBefore是指动画结束时画面停留在此动画的第一帧;--> <!--fillAfter是指动画结束是画面停留在此动画的最后一帧。--> <!-- fromXDelta,fromYDelta 起始时X,Y座标,屏幕右下角的座标是X:320,Y:480 toXDelta, toYDelta 动画结束时X,Y的座标 interpolator 指定动画插入器,常见的有 加速减速插入器 accelerate_decelerate_interpolator 加速插入器 accelerate_interpolator, 减速插入器 decelerate_interpolator。 fromXScale,fromYScale, 动画开始前X,Y的缩放,0.0为不显示, 1.0为正常大小 toXScale,toYScale, 动画最终缩放的倍数, 1.0为正常大小,大于1.0放大 pivotX, pivotY 动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始 startOffset, 动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,单位毫秒 duration, 一次动画效果消耗的时间,单位毫秒,值越小动画速度越快 repeatCount, 动画重复的计数,动画将会执行该值+1次 repeatMode, 动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。restart为重新执行,方向不变 --> <!--先放大--> <scale android:duration="300" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="2" android:toYScale="2" /> <!--然后缩小--> <scale android:duration="300" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:startOffset="300" android:toXScale="0.5" android:toYScale="0.5" /> </set>初始化动画对象,并加载我们在之前动画资源当中的预设 Animation animation; animation= AnimationUtils.loadAnimation(this,R.anim.anim_small); 图片的点击事件当中开始动画 redPic.startAnimation(animation);