Android中幀動畫的實現

對於Android中動畫的實現,Android中的動畫主要有幀動畫,補間動畫,屬性動畫,層layer。

所謂的幀動畫就是多張圖片進行循環的切換形成的效果。

實現步驟:

①在res文件夾下新建文件夾drawable

②在drawable文件夾下新建xml文件,類型爲:animation-list

③把我們要切換的圖片通過添加item的方式添加到animation-list中

④在代碼中引用我們創建的佈局

一、

drawable文件夾下的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<!-- 動畫列表 
android:oneshot="true/false"
如果爲true:則表示item中的圖片只循環一次
如果爲false:則表示item中的圖片無限循環

-->
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <!-- 
    	一個item項表示一張圖片
    android:drawable引用資源中的圖片 	android:duration 顯示的時間:毫秒-->
    <item android:drawable="@drawable/anim1" android:duration="100"></item>
    <item android:drawable="@drawable/anim2" android:duration="100"></item>
    <item android:drawable="@drawable/anim3" android:duration="100"></item>
    <item android:drawable="@drawable/anim4" android:duration="100"></item>
    <item android:drawable="@drawable/anim5" android:duration="100"></item>
    <item android:drawable="@drawable/anim6" android:duration="100"></item>
    <item android:drawable="@drawable/anim7" android:duration="100"></item>
    <item android:drawable="@drawable/anim8" android:duration="100"></item>
    <item android:drawable="@drawable/anim9" android:duration="100"></item>
    <item android:drawable="@drawable/anim10" android:duration="100"></item>
    <item android:drawable="@drawable/anim11" android:duration="100"></item>
    <item android:drawable="@drawable/anim12" android:duration="100"></item>

</animation-list>
二、

MainActivity中的實現:

package com.example.text01;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.view.Menu;
import android.view.View;
import android.view.animation.Animation;
import android.widget.ImageView;

public class MainActivity extends Activity {

	private ImageView iv;
	private AnimationDrawable animationDrawable;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv = (ImageView) findViewById(R.id.iv);
		// 代碼中設置資源
		iv.setBackgroundResource(R.drawable.frame_animation);
		animationDrawable = (AnimationDrawable) iv.getBackground();
	}

	public void start(View view) {
		// 判斷當前的動畫是否正在運行
		if (!animationDrawable.isRunning()) {

			animationDrawable.start();
		}
	}

	public void stop(View view) {
		if (animationDrawable.isRunning()) {

			animationDrawable.stop();
		}
	}

}
運行結果:


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