在item 标签里定义每一帧图片
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"><!-- 是否执行一次还是一直播放 true执行一次 false循环播放 -->
<!-- android:duration="200" 播放到这张图片的时候停留的时间-->
<item android:drawable="@drawable/g_1" android:duration="200"/>
<item android:drawable="@drawable/g_2" android:duration="200"/>
<item android:drawable="@drawable/g_3" android:duration="200"/>
<item android:drawable="@drawable/g_4" android:duration="200"/>
<item android:drawable="@drawable/g_5" android:duration="200"/>
<item android:drawable="@drawable/g_6" android:duration="200"/>
<item android:drawable="@drawable/g_7" android:duration="200"/>
<item android:drawable="@drawable/g_8" android:duration="200"/>
</animation-list>
setBackgroundResource(R.drawable.frame); 绑定Frame背景动画图形
getBackground () 获取背景动画对象
取得主线程的消息处理对象
getMainLooper 专门处理主线程绑定的消息队列里面的消息
getQueue 取得主线程的消息队列
addIdleHandler主线程的消息处理完成之后才会调用addIdleHandler里面的方法
package com.example.frame;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.MessageQueue;
import android.view.animation.Animation;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv=findViewById(R.id.imageView);
iv.setBackgroundResource(R.drawable.frame);//绑定Frame动画图形
//获取背景动画对象
final AnimationDrawable animation=(AnimationDrawable) iv.getBackground();
//取得主线程的消息处理对象
//getMainLooper 专门处理主线程绑定的消息队列里面的消息
//getQueue取得主线程的消息队列
//addIdleHandler主线程的消息处理完成之后才会调用addIdleHandler里面的方法
getMainLooper().getQueue().addIdleHandler(new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
animation.start();
return false;
}
});
}
}
界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>