安卓模仿直播中的闪动(放大缩小)的动画
这里主要的实现方式是写两个动画来循环滚动
不多说了上干货
//直播中的动画 final Animation loadAnimation = AnimationUtils.loadAnimation(holder.iv_head.getContext(), R.anim.anim_repeat_scale1); final Animation loadAnimation2 = AnimationUtils.loadAnimation(holder.iv_head.getContext(), R.anim.anim_repeat_scale_second1); final ImageView iv = holder.iv_head; holder.iv_head.startAnimation(loadAnimation); loadAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { iv.startAnimation(loadAnimation2); } @Override public void onAnimationRepeat(Animation animation) { } }); loadAnimation2.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { iv.startAnimation(loadAnimation); } @Override public void onAnimationRepeat(Animation animation) { } });
这里写了两个动画在监听完成中继续播放下一个动画
loadAnimation
loadAnimation2
这两个动画
xml文件在动画文件anim中创建
anim_repeat_scale1
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- fromXScale toXScale分别是起始和结束时X坐标的伸缩尺寸--> <!-- fromYScale toYScale分别是起始和结束时Y坐标的伸缩尺寸--> <!-- pivotX pivotY分别为伸缩动画相对于x,y坐标开始的位置,50%为中心点,从哪个点开始--> <scale android:duration="600" android:fillAfter="false" android:fromXScale="0.9" android:fromYScale="0.9" android:interpolator="@android:anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.0" android:toYScale="1.0"> </scale> </set>
anim_repeat_scale_second1
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- fromXScale toXScale分别是起始和结束时X坐标的伸缩尺寸--> <!-- fromYScale toYScale分别是起始和结束时Y坐标的伸缩尺寸--> <!-- pivotX pivotY分别为伸缩动画相对于x,y坐标开始的位置,50%为中心点,从哪个点开始--> <scale android:duration="600" android:fillAfter="false" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.9" android:toYScale="0.9"> </scale> </set>
效果就是一直放大缩小的效果
leileitua