您的位置:首页 > 移动开发 > Android开发

贴一个定义android animation的应用实例

2009-12-28 10:20 274 查看



贴一个定义android animation的应用实例 收藏

此文件名为myanimation.xml 位于 res/anim文件夹下:

具体释义已在文件中解释。

view plaincopy to clipboardprint?

<?xml version="1.0" encoding="UTF-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

<!--

Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效

Alpha:渐变透明度动画效果

Scale:渐变尺寸伸缩动画效果

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

Rotate:画面旋转动画效果

Tween Animation 通用属性[类型] 功能

Duration[long] 属性为动画持续时间 时间以毫秒为单位

fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用

fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用

interpolator 指定一个动画的插入器 有一些常见的插入器

accelerate_decelerate_interpolator

加速-减速 动画插入器

accelerate_interpolator

加速-动画插入器

decelerate_interpolator

减速- 动画插入器

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

repeatCount[int] 动画的重复次数

RepeatMode[int] 定义重复的行为 1:重新开始 2:plays backward

startOffset[long] 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画

zAdjustment[int] 定义动画的Z Order的改变 0:保持Z Order不变

1:保持在最上层

-1:保持在最下层

-->

<!--

透明控制动画

-->

<alpha

android:fromAlpha="0.1"

android:toAlpha="1.0"

android:duration="3000"

/>

<!-- 尺寸伸缩动画效果 scale

属性:interpolator 指定一个动画的插入器

有三种动画插入器:

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 ,该动画转化在动画结束后被应用

-->

<scale

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:repeatCount="1"

android:fromXScale="0.5"

android:fromYScale="0.5"

android:toXScale="1.4"

android:toYScale="1.4"

android:pivotX="50%"

android:pivotY="50%"

android:fillAfter="false"

android:duration="3000"

/>

<!--

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

fromXDelta toXDelta 为动画、结束起始时 X坐标上的位置

fromYDelta toYDelta 为动画、结束起始时 Y坐标上的位置

-->

<translate

android:repeatCount="2"

android:fromXDelta="-30"

android:fromYDelta="-30"

android:toXDelta="-80"

android:toYDelta="200"

android:duration="3000"

/>

<!--

画面转移旋转动画效果 rotate

fromDegrees 为动画起始时物件的角度 说明

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

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

(负数from——to正数:顺时针旋转)

(负数from——to负数:逆时针旋转)

(正数from——to正数:顺时针旋转)

(正数from——to负数:逆时针旋转)

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

pivotX

pivotY 为动画相对于物件的X、Y坐标的开始位 说明:以上两个属性值 从0%-100%中取值

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

-->

<rotate

android:interpolator="@android:anim/accelerate_interpolator"

android:repeatCount="2"

android:fromDegrees="0"

android:toDegrees="+270"

android:pivotX="50%"

android:pivotY="50%"

android:duration="3000"

/>

</set>

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<!--
Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效

Alpha:渐变透明度动画效果
Scale:渐变尺寸伸缩动画效果
Translate:画面转换位置移动动画效果
Rotate:画面旋转动画效果

Tween Animation 通用属性[类型]	功能
Duration[long]	属性为动画持续时间	时间以毫秒为单位
fillAfter [boolean]	当设置为true ,该动画转化在动画结束后被应用
fillBefore[boolean]	当设置为true ,该动画转化在动画开始前被应用

interpolator	指定一个动画的插入器	有一些常见的插入器
accelerate_decelerate_interpolator
加速-减速 动画插入器
accelerate_interpolator
加速-动画插入器
decelerate_interpolator
减速- 动画插入器
其他的属于特定的动画效果
repeatCount[int]	动画的重复次数
RepeatMode[int]	定义重复的行为	1:重新开始  2:plays backward
startOffset[long]	动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
zAdjustment[int]	定义动画的Z Order的改变	0:保持Z Order不变
1:保持在最上层
-1:保持在最下层

-->
<!--
透明控制动画
-->
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="3000"
/>

<!-- 尺寸伸缩动画效果 scale

属性:interpolator 指定一个动画的插入器

有三种动画插入器:
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 ,该动画转化在动画结束后被应用
-->
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:repeatCount="1"

android:fromXScale="0.5"
android:fromYScale="0.5"
android:toXScale="1.4"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="3000"

/>
<!--
画面转换位置移动动画效果 translate

fromXDelta toXDelta	为动画、结束起始时 X坐标上的位置
fromYDelta toYDelta	为动画、结束起始时 Y坐标上的位置
-->

<translate
android:repeatCount="2"
android:fromXDelta="-30"
android:fromYDelta="-30"
android:toXDelta="-80"
android:toYDelta="200"
android:duration="3000"
/>
<!--
画面转移旋转动画效果 rotate

fromDegrees	为动画起始时物件的角度	说明
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
toDegrees	属性为动画结束时物件旋转的角度 可以大于360度
pivotX
pivotY	为动画相对于物件的X、Y坐标的开始位	说明:以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
-->
<rotate
android:interpolator="@android:anim/accelerate_interpolator"
android:repeatCount="2"
android:fromDegrees="0"
android:toDegrees="+270"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
/>

</set>


用法:

加入把此动画定义用到一个TextView上,那么需要做的工作很简单:

view plaincopy to clipboardprint?

Animation mAnimation ;

mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim);

TextView text = (TextView)findViewById(R.id.textview00);

text.setAnimation(mAnimation);

Animation mAnimation ;
mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim);
TextView text = (TextView)findViewById(R.id.textview00);
text.setAnimation(mAnimation);


此处要注意一点:

要用AnimationDrawable 的start()方法来启动动画,不管动画是否完毕,想要第二次启动动画一定要先调用它的stop()方法才可以再次启动动画。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐