1.准备动画布局
<?xml version="1.0" encoding="utf-8"?>
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"
>
<!-- android:oneshot="false" 动画循环播放-->
<item android:drawable="@mipmap/im1" android:duration="150"></item>
<item android:drawable="@mipmap/im2" android:duration="150"></item>
<item android:drawable="@mipmap/im3" android:duration="150"></item>
<item android:drawable="@mipmap/im4" android:duration="150"></item>
<item android:drawable="@mipmap/im5" android:duration="150"></item>
<item android:drawable="@mipmap/im6" android:duration="150"></item>
<item android:drawable="@mipmap/im7" android:duration="150"></item>
<item android:drawable="@mipmap/im8" android:duration="150"></item>
</animation-list>
2.界面布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:id="@+id/max"
android:src="@drawable/max"
></ImageView>
</RelativeLayout>
3.activity
package com.example.zhendonghua;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private AnimationDrawable animationDrawable;//播放帧动画的对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=findViewById(R.id.max);//初始化图片
animationDrawable= (AnimationDrawable) imageView.getDrawable();//获取动画对象
}
/**
* 程序运行时
* **/
@Override
protected void onResume() {
super.onResume();
animationDrawable.start();
}
/**
* 当界面失去焦点
*
* 当系统调用你的activity中的onPause(),从技术上讲,那意味着你的activity仍然处于部分可见的状态,当时大多数时候,
* 那意味着用户正在离开这个activity并马上会进入Stopped state. 你通常应该在onPause()回调方法里面做下面的事情:
* 停止动画或者是其他正在运行的操作,那些都会导致CPU的浪费.
* 提交没有保存的改变,但是仅仅是在用户离开时期待保存的内容(such as a draft email).
* 释放系统资源,例如broadcast receivers, sensors (like GPS), 或者是其他任何会影响到电量的资源。
* 例如, 如果你的程序使用Camera,onPause()会是一个比较好的地方去做那些释放资源的操作。
* **/
@Override
protected void onPause() {
super.onPause();
animationDrawable.stop();
}
;
}