Android开发Android动画编程基础.docx

上传人:b****5 文档编号:7651098 上传时间:2023-01-25 格式:DOCX 页数:15 大小:127.43KB
下载 相关 举报
Android开发Android动画编程基础.docx_第1页
第1页 / 共15页
Android开发Android动画编程基础.docx_第2页
第2页 / 共15页
Android开发Android动画编程基础.docx_第3页
第3页 / 共15页
Android开发Android动画编程基础.docx_第4页
第4页 / 共15页
Android开发Android动画编程基础.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Android开发Android动画编程基础.docx

《Android开发Android动画编程基础.docx》由会员分享,可在线阅读,更多相关《Android开发Android动画编程基础.docx(15页珍藏版)》请在冰豆网上搜索。

Android开发Android动画编程基础.docx

Android开发Android动画编程基础

动画类型

Android的animation由四种类型组成

XML中

alpha

渐变透明度动画效果

scale

渐变尺寸伸缩动画效果

translate

画面转换位置移动动画效果

rotate

画面转移旋转动画效果

JavaCode中

AlphaAnimation

渐变透明度动画效果

ScaleAnimation

渐变尺寸伸缩动画效果

TranslateAnimation

画面转换位置移动动画效果

RotateAnimation

画面转移旋转动画效果

Android动画模式

Animation主要有两种动画模式:

一种是tweenedanimation(渐变动画)

XML中

JavaCode

alpha

AlphaAnimation

scale

ScaleAnimation

一种是framebyframe(画面转换动画)

XML中

JavaCode

translate

TranslateAnimation

rotate

RotateAnimation

如何在XML文件中定义动画

①打开Eclipse,新建Android工程

②在res目录中新建anim文件夹

③在anim目录中新建一个myanim.xml(注意文件名小写)

④加入XML的动画代码

1

2

3

4

5

6

7

xmlversion="1.0"encoding="utf-8"?

>

android="

Android动画解析–XML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

xmlversion="1.0"encoding="utf-8"?

>

android=">

android:

fromAlpha="0.1"

android:

toAlpha="1.0"

android:

duration="3000"

/>

--透明度控制动画效果alpha

浮点型值:

fromAlpha属性为动画起始时透明度

toAlpha属性为动画结束时透明度

说明:

0.0表示完全透明

1.0表示完全不透明

以上值取0.0-1.0之间的float数据类型的数字

长整型值:

duration属性为动画持续时间

说明:

时间以毫秒为单位

-->

1

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

41

42

43

44

45

46

47

48

49

50

51

52

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

interpolator=

"@android:

anim/accelerate_decelerate_interpolator"

android:

fromXScale="0.0"

android:

toXScale="1.4"

android:

fromYScale="0.0"

android:

toYScale="1.4"

android:

pivotX="50%"

android:

pivotY="50%"

android:

fillAfter="false"

android:

duration="700"/>

--尺寸伸缩动画效果scale

属性:

interpolator指定一个动画的插入器

在我试验过程中,使用android.res.anim中的资源时候发现

有三种动画插入器:

accelerate_decelerate_interpolator加速-减速动画插入器

accelerate_interpolator加速-动画插入器

decelerate_interpolator减速-动画插入器

其他的属于特定的动画效果

浮点型值:

fromXScale属性为动画起始时X坐标上的伸缩尺寸

toXScale属性为动画结束时X坐标上的伸缩尺寸

fromYScale属性为动画起始时Y坐标上的伸缩尺寸

toYScale属性为动画结束时Y坐标上的伸缩尺寸

说明:

以上四种属性值

0.0表示收缩到没有

1.0表示正常无伸缩

值小于1.0表示收缩

值大于1.0表示放大

pivotX属性为动画相对于物件的X坐标的开始位置

pivotY属性为动画相对于物件的Y坐标的开始位置

说明:

以上两个属性值从0%-100%中取值

50%为物件的X或Y方向坐标上的中点位置

长整型值:

duration属性为动画持续时间

说明:

时间以毫秒为单位

布尔型值:

fillAfter属性当设置为true,该动画转化在动画结束后被应用

-->

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

fromXDelta="30"

android:

toXDelta="-80"

android:

fromYDelta="30"

android:

toYDelta="300"

android:

duration="2000"

/>

--translate位置转移动画效果

整型值:

fromXDelta属性为动画起始时X坐标上的位置

toXDelta属性为动画结束时X坐标上的位置

fromYDelta属性为动画起始时Y坐标上的位置

toYDelta属性为动画结束时Y坐标上的位置

注意:

没有指定fromXTypetoXTypefromYTypetoYType时候,

默认是以自己为相对参照物

长整型值:

duration属性为动画持续时间

说明:

时间以毫秒为单位

-->

1

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

41

42

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

interpolator="@android:

anim/accelerate_decelerate_interpolator"

android:

fromDegrees="0"

android:

toDegrees="+350"

android:

pivotX="50%"

android:

pivotY="50%"

android:

duration="3000"/>

--rotate旋转动画效果

属性:

interpolator指定一个动画的插入器

在我试验过程中,使用android.res.anim中的资源时候发现

有三种动画插入器:

accelerate_decelerate_interpolator加速-减速动画插入器

accelerate_interpolator加速-动画插入器

decelerate_interpolator减速-动画插入器

其他的属于特定的动画效果

浮点数型值:

fromDegrees属性为动画起始时物件的角度

toDegrees属性为动画结束时物件旋转的角度可以大于360度

说明:

当角度为负数——表示逆时针旋转

当角度为正数——表示顺时针旋转

(负数from——to正数:

顺时针旋转)

(负数from——to负数:

逆时针旋转)

(正数from——to正数:

顺时针旋转)

(正数from——to负数:

逆时针旋转)

pivotX属性为动画相对于物件的X坐标的开始位置

pivotY属性为动画相对于物件的Y坐标的开始位置

说明:

以上两个属性值从0%-100%中取值

50%为物件的X或Y方向坐标上的中点位置

长整型值:

duration属性为动画持续时间

说明:

时间以毫秒为单位

-->

如何使用XML中的动画效果

1

2

3

4

5

6

publicstaticAnimationloadAnimation(Contextcontext,intid)

//第一个参数Context为程序的上下文

//第二个参数id为动画XML文件的引用

//例子:

myAnimation=AnimationUtils.loadAnimation(this,R.anim.my_action);

//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件

如何在Java代码中定义动画

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//在代码中定义动画实例对象

privateAnimationmyAnimation_Alpha;

privateAnimationmyAnimation_Scale;

privateAnimationmyAnimation_Translate;

privateAnimationmyAnimation_Rotate;

//根据各自的构造方法来初始化一个实例对象

myAnimation_Alpha=newAlphaAnimation(0.1f,1.0f);

myAnimation_Scale=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,

Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

myAnimation_Translate=newTranslateAnimation(30.0f,-80.0f,30.0f,300.0f);

myAnimation_Rotate=newRotateAnimation(0.0f,+350.0f,

Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

Android动画解析–JavaCode

AlphaAnimation

① AlphaAnimation类对象定义

1

privateAlphaAnimationmyAnimation_Alpha;

② AlphaAnimation类对象构造

1

2

3

4

5

6

7

AlphaAnimation(floatfromAlpha,floattoAlpha)

//第一个参数fromAlpha为动画开始时候透明度

//第二个参数toAlpha为动画结束时候透明度

myAnimation_Alpha=newAlphaAnimation(0.1f,1.0f);

//说明:

//0.0表示完全透明

//1.0表示完全不透明

③ 设置动画持续时间

1

2

myAnimation_Alpha.setDuration(5000);

//设置时间持续时间为5000毫秒

ScaleAnimation

① ScaleAnimation类对象定义

1

privateAlphaAnimationmyAnimation_Alpha;

② ScaleAnimation类对象构造

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,

intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)

//第一个参数fromX为动画起始时X坐标上的伸缩尺寸

//第二个参数toX为动画结束时X坐标上的伸缩尺寸

//第三个参数fromY为动画起始时Y坐标上的伸缩尺寸

//第四个参数toY为动画结束时Y坐标上的伸缩尺寸

/*说明:

以上四种属性值

0.0表示收缩到没有

1.0表示正常无伸缩

值小于1.0表示收缩

值大于1.0表示放大

*/

//第五个参数pivotXType为动画在X轴相对于物件位置类型

//第六个参数pivotXValue为动画相对于物件的X坐标的开始位置

//第七个参数pivotXType为动画在Y轴相对于物件位置类型

//第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

myAnimation_Scale=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,

Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

③ 设置动画持续时间

1

2

myAnimation_Scale.setDuration(700);

//设置时间持续时间为700毫秒

TranslateAnimation

① TranslateAnimation类对象定义

1

privateAlphaAnimationmyAnimation_Alpha;

② TranslateAnimation类对象构造

1

2

3

4

5

6

TranslateAnimation(floatfromXDelta,floattoXDelta,

floatfromYDelta,floattoYDelta)

//第一个参数fromXDelta为动画起始时X坐标上的移动位置

//第二个参数toXDelta为动画结束时X坐标上的移动位置

//第三个参数fromYDelta为动画起始时Y坐标上的移动位置

//第四个参数toYDelta为动画结束时Y坐标上的移动位置

③ 设置动画持续时间

1

2

myAnimation_Translate.setDuration(2000);

//设置时间持续时间为2000毫秒

RotateAnimation

① RotateAnimation类对象定义

1

privateAlphaAnimationmyAnimation_Alpha;

② RotateAnimation类对象构造

1

2

3

4

5

6

7

8

9

10

RotateAnimation(floatfromDegrees,floattoDegrees,

intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)

//第一个参数fromDegrees为动画起始时的旋转角度

//第二个参数toDegrees为动画旋转到的角度

//第三个参数pivotXType为动画在X轴相对于物件位置类型

//第四个参数pivotXValue为动画相对于物件的X坐标的开始位置

//第五个参数pivotXType为动画在Y轴相对于物件位置类型

//第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置

myAnimation_Rotate=newRotateAnimation(0.0f,+350.0f,

Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

③ 设置动画持续时间

1

2

myAnimation_Rotate.setDuration(3000);

//设置时间持续时间为3000毫秒

如何使用Java代码中的动画效果

使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果

1

publicvoidstartAnimation(Animationanimation)

结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1