有些技術(shù)長時間不用就忘記了,在工作中常常使用到Tween動畫,今天在淘寶客戶端看到Frame動畫,一時想不起來怎么實(shí)現(xiàn)了,剛剛查了一下,發(fā)現(xiàn)很簡單,現(xiàn)在寫下來備忘。

frame動畫:即順序播放事先做好的圖像,與放膠片電影類似。
開發(fā)步驟:
1.把準(zhǔn)備好的圖片放進(jìn)項(xiàng)目res/drawable-hdpi下。
2.在項(xiàng)目的res目錄下創(chuàng)建文件夾drawable,然后在drawable文件夾下面定義動畫XML文件,
文件名稱可以自定義。
3.為View控件綁定動畫效果,調(diào)用代表動畫的AnimationDrawable的start()方法開始動畫。

第一步:新建一個Android工程命名為frame目錄結(jié)構(gòu)如下圖:


第二步:在項(xiàng)目的res目錄下創(chuàng)建文件夾drawable,然后在drawable文件夾下面定義動畫XML文件:

 1<?xml version="1.0" encoding="utf-8"?>
 2<!--
 3     根標(biāo)簽為animation-list,其中oneshot代表著是否只展示一遍,設(shè)置為false會不停的循環(huán)播放動畫  
 4
 5     根標(biāo)簽下,通過item標(biāo)簽對動畫中的每一個圖片進(jìn)行聲明  
 6
 7 android:duration 表示展示所用的該圖片的時間長度  
 8
 9-->
10
11<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
12    android:oneshot="false"
13    >
14
15    <item
16        android:drawable="@drawable/pull_to_refresh_tmall_1"
17        android:duration="150"/>
18    <item
19        android:drawable="@drawable/pull_to_refresh_tmall_2"
20        android:duration="150"/>
21    <item
22        android:drawable="@drawable/pull_to_refresh_tmall_3"
23        android:duration="150"/>
24    <item
25        android:drawable="@drawable/pull_to_refresh_tmall_5"
26        android:duration="150"/>
27    <item
28        android:drawable="@drawable/pull_to_refresh_tmall_6"
29        android:duration="150"/>
30    <item
31        android:drawable="@drawable/pull_to_refresh_tmall_7"
32        android:duration="150"/>
33    <item
34        android:drawable="@drawable/pull_to_refresh_tmall_8"
35        android:duration="150"/>
36    <item
37        android:drawable="@drawable/pull_to_refresh_tmall_9"
38        android:duration="150"/>
39
40</animation-list>


第三步:編寫MianActivity類:


 1package cn.eoe.leigo.frame;
 2
 3import android.app.Activity;
 4import android.graphics.drawable.AnimationDrawable;
 5import android.os.Bundle;
 6import android.view.View;
 7import android.widget.ImageView;
 8
 9public class MainActivity extends Activity {
10    private ImageView iv;
11    private AnimationDrawable animationDrawable;
12
13    @Override
14    protected void onCreate(Bundle savedInstanceState) {
15        super.onCreate(savedInstanceState);
16        setContentView(R.layout.activity_main);
17
18        iv = (ImageView) findViewById(R.id.iv);
19        animationDrawable = (AnimationDrawable) iv.getBackground();
20    }

21
22    public void start(View v) {
23        animationDrawable.start();
24    }

25
26    public void stop(View v) {
27        animationDrawable.stop();
28    }

29
30}

31

運(yùn)行上述工程查看效果圖: