• 安卓模仿直播中的闪动(放大缩小)的动画


    这里主要的实现方式是写两个动画来循环滚动

    不多说了上干货

    //直播中的动画
            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

  • 相关阅读:
    《Ubuntu标准教程》学习总结
    Ubuntu下安装VirtualBox并为其添加USB支持
    Eclipse下配置TinyOS开发环境
    Ubuntu下的网络服务
    Ubuntu12.04添加环境变量
    Ubuntu12.04下搭建Java环境
    poj 1066 线段相交
    poj 2653 (线段相交判断)
    poj 2398 (叉积+二分)
    hdu 4883 思维题
  • 原文地址:https://www.cnblogs.com/widgetbox/p/12987506.html
Copyright © 2020-2023  润新知