有些技術(shù)長(zhǎng)時(shí)間不用就忘記了,在工作中常常使用到Tween動(dòng)畫(huà),今天在淘寶客戶端看到Frame動(dòng)畫(huà),一時(shí)想不起來(lái)怎么實(shí)現(xiàn)了,剛剛查了一下,發(fā)現(xiàn)很簡(jiǎn)單,現(xiàn)在寫(xiě)下來(lái)備忘。
frame動(dòng)畫(huà):即順序播放事先做好的圖像,與放膠片電影類似。
frame動(dòng)畫(huà):即順序播放事先做好的圖像,與放膠片電影類似。
開(kāi)發(fā)步驟:
1.把準(zhǔn)備好的圖片放進(jìn)項(xiàng)目res/drawable-hdpi下。
2.在項(xiàng)目的res目錄下創(chuàng)建文件夾drawable,然后在drawable文件夾下面定義動(dòng)畫(huà)XML文件,
文件名稱可以自定義。
3.為View控件綁定動(dòng)畫(huà)效果,調(diào)用代表動(dòng)畫(huà)的AnimationDrawable的start()方法開(kāi)始動(dòng)畫(huà)。
第一步:新建一個(gè)Android工程命名為frame目錄結(jié)構(gòu)如下圖:

第二步:在項(xiàng)目的res目錄下創(chuàng)建文件夾drawable,然后在drawable文件夾下面定義動(dòng)畫(huà)XML文件:
1
<?xml version="1.0" encoding="utf-8"?>
2
<!--
3
根標(biāo)簽為animation-list,其中oneshot代表著是否只展示一遍,設(shè)置為false會(huì)不停的循環(huán)播放動(dòng)畫(huà)
4
5
根標(biāo)簽下,通過(guò)item標(biāo)簽對(duì)動(dòng)畫(huà)中的每一個(gè)圖片進(jìn)行聲明
6
7
android:duration 表示展示所用的該圖片的時(shí)間長(zhǎng)度
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>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

第三步:編寫(xiě)MianActivity類:
1
package cn.eoe.leigo.frame;
2
3
import android.app.Activity;
4
import android.graphics.drawable.AnimationDrawable;
5
import android.os.Bundle;
6
import android.view.View;
7
import android.widget.ImageView;
8
9
public 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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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