zoukankan      html  css  js  c++  java
  • 安卓模仿直播中的闪动(放大缩小)的动画

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

    不多说了上干货

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

  • 相关阅读:
    #检查磁盘使用率超过90%,并且后台进程没有rman在跑,就运行 /data/script/del_dg_arch.sh 脚本清理归档
    linux shell数据重定向
    创建用户
    Linux HA+ Oracle 安装维护手册
    解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range
    Linux 文件不能被root修改与编辑原因
    python中的时间戳和格式化之间的转换
    Python-Redis-发布订阅
    Python-Redis-常用操作&管道
    Python-Redis-Set
  • 原文地址:https://www.cnblogs.com/widgetbox/p/12987506.html
Copyright © 2011-2022 走看看