Android补间动画-雷达扫描效果

动画扫描效果

先看一下效果:
在这里插入图片描述

实现过程

  1. 首先在布局中添加四个imageview,背景色可以设置成橘黄色,通过shape文件将四个imageview设置成圆形。
    布局文件demo.xml
<ImageView
        android:id="@+id/iv_scan_1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:gravity="center"
        android:background="@drawable/shape_round"/>

    <ImageView
        android:id="@+id/iv_scan_2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:gravity="center"
        android:background="@drawable/shape_round"/>

    <ImageView
        android:id="@+id/iv_scan_3"
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:gravity="center"
        android:background="@drawable/shape_round"/>

    <ImageView
        android:id="@+id/iv_scan_4"
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:gravity="center"
        android:background="@drawable/shape_round"/>

shape文件 shape_round.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
<!--    <corners android:radius="35dp" />-->
    <solid android:color="#FF7F24"/>
</shape>
  1. 然后创建动画文件,在创建动画文件之前先分析一下要实现的效果:要实现效果必须使控件放大的同时降低透明度,所以整个过程包含两个动画,scale和alpha动画。
    anim_scan.xml动画文件
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3200">
<!--    时长3s-->
<!--    缩放动画 以控件自身中心点为起始点,放大到自身的3倍大小-->
    <scale
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="3"
        android:toYScale="3"
        android:fillAfter="true"
        android:repeatMode="restart"
        android:repeatCount="infinite"/>
    
<!--    透明度动画 从不透明到透明-->
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0"
        android:repeatCount="infinite"/>
</set>
  1. 执行动画,为了达到效果,需要对四个动画分别设置不同的延迟时间
btn_scan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Animation scan=AnimationUtils.loadAnimation(ViewAnimDemoActivity.this,R.anim.anim_scan);
                
                iv_scan_1.startAnimation(scan);
                Animation scan2=AnimationUtils.loadAnimation(ViewAnimDemoActivity.this,R.anim.anim_scan);

                scan2.setStartOffset(1200);
                iv_scan_2.startAnimation(scan2);
                Animation scan3=AnimationUtils.loadAnimation(ViewAnimDemoActivity.this,R.anim.anim_scan);

                scan3.setStartOffset(1800);
                iv_scan_3.startAnimation(scan3);
                Animation scan4=AnimationUtils.loadAnimation(ViewAnimDemoActivity.this,R.anim.anim_scan);

                scan4.setStartOffset(2400);
                iv_scan_4.startAnimation(scan4);
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值