幀動畫:是指多張圖片快速切換
先看一下實現的效果
實現方式
第一步:使用Android Studio創建一個Android工程,並且在drawable文件夾中添加創建幀動畫時每一幀用到的圖片
第二步:在drawable文件夾下新建一個frameanimation.xml文件,並在frameannimation.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="@drawable/g1" android:duration="200" />
<item android:drawable="@drawable/g2" android:duration="200" />
<item android:drawable="@drawable/g3" android:duration="200" />
<item android:drawable="@drawable/g4" android:duration="200" />
<item android:drawable="@drawable/g5" android:duration="200" />
<item android:drawable="@drawable/g6" android:duration="200" />
<item android:drawable="@drawable/g7" android:duration="200" />
<item android:drawable="@drawable/g8" android:duration="200" />
<item android:drawable="@drawable/g9" android:duration="200" />
<item android:drawable="@drawable/g10" android:duration="200" />
<item android:drawable="@drawable/g11" android:duration="200" />
</animation-list>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.fyt.frameanimation.MainActivity"
android:orientation="vertical">
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
最後一步:修改MainActivity.java文件
package com.fyt.frameanimation;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲得佈局文件上的ImageView控件
ImageView iv = (ImageView) findViewById(R.id.iv);
//把幀動畫的資源文件指定爲ImageView的背景
iv.setBackgroundResource(R.drawable.frameanimation);
//獲取ImageView的背景
AnimationDrawable ad = (AnimationDrawable) iv.getBackground();
//播放幀動畫
ad.start();
}
}