Android AnimationDrawable動畫實現icon閃爍

在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 決定了動畫開關。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章