首先定义anim:
res/drawable/chat_right_voice_anim.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@mipmap/icon_send_voice_playing_001" android:duration="120"/>
<item android:drawable="@mipmap/icon_send_voice_playing_002" android:duration="120"/>
<item android:drawable="@mipmap/icon_send_voice_playing_003" android:duration="120"/>
</animation-list>
布局文件定义:
<android.support.v7.widget.AppCompatImageView
android:id="@+id/item_right_voice_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dd_dp10"
android:layout_toStartOf="@+id/item_right_head_icon"
android:layout_centerVertical="true"
android:gravity="end"
android:src="@drawable/chat_right_voice_anim"/>
java文件定义:
private AnimationDrawable anim;
private ImageView voiceImg;
private void test(){
anim = (AnimationDrawable)voiceImg.getDrawable();
}
/**
* 设置默认帧数
**.
private void setDefaultFrame(){
anim.selectDrawable(0);
}
注意:
设置初始默认帧数时调用selectDrawable(int index)
无效,需要间隔一段时间,所以初始默认帧数需要在xml文件中定义成第一帧才行,如下:
res/drawable/chat_right_voice_anim.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@mipmap/icon_send_voice_playing_003" android:duration="120"/>
<item android:drawable="@mipmap/icon_send_voice_playing_001" android:duration="120"/>
<item android:drawable="@mipmap/icon_send_voice_playing_002" android:duration="120"/>
</animation-list>