欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android AnimationDrawable动画实现icon闪烁

程序员文章站 2024-03-24 14:48:16
...

在Dialer的通话中进行录音时,有个record icon在一闪一闪,看了源码发现挺好玩的,现在记录一下。

代码里的写法:

      AnimationDrawable ad = (AnimationDrawable) mVoiceRecorderIcon.getDrawable();
      if (ad != null) {
          if (show && !ad.isRunning()) {
              ad.start();
          } else if (!show && ad.isRunning()) {
              ad.stop();
          }
      }

获取一个帧动画image,
其中getDrawable返回的对象就是一个drawable ,
R.drawable.voice_record_indicator

xml布局写法:

<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
                xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:duration="500" android:drawable="@drawable/incall_btn_recording"/>

    <item android:duration="500">
        <shape android:shape="rectangle">
            <size android:width="@dimen/incall_record_icon_size"
                  android:height="@dimen/incall_record_icon_size"/>
            <solid android:color="#00ffffff"/>
        </shape>
    </item>
</animation-list>

这里的duration决定了显示时间

然后AnimationDrawable的start和stop 决定了动画开关。