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

android之动画分析

2015-02-10 14:58 78 查看
android之Tween动画分析

Android动画有两种:
1,Tween动画,通过对 View 的内容进行一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。动画效果的定义可以采用XML来做也可以采用编码来做;
2,Frame动画,即顺序播放事先做好的图像,跟放胶片电影类似。 

(1)把准备好的图片放进项目res/ drawable下。

(2)在项目的res目录下创建文件夹anim,然后在anim文件夹下面定义动画XML文件,文件名称可以自定义。当然也可以采用编码方式定义动画效果(使用AnimationDrawable类)。

(3)为View控件绑定动画效果。调用代表动画的AnimationDrawable的start()方法开始动画。


定义动画简单2步骤:
1,res文件下建动画文件anim,然后建动画xml,比如scale.xml;
2,代码直接调用xml布局文件,形成动画;

今天讲下Tween的4种动画用法:
1,渐变尺寸缩放效果动画,如果用代码定义动画需要使用的类:ScaleAnimation
布局代码:
<span style="font-size:14px;"><!-- 缩放动画 -->
<scale
android:duration="1000"
android:fillAfter="false"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" /&
4000
gt;</span>
说明:
duration: 动画时长
fromXScale: 动画起始X坐标 
fromYScale: 动画起始Y坐标

toXScale:动画结束X坐标
toYScale:动画结束Y坐标
    0.0表示收缩到没有,1.0表示正常无收缩
    值小于0表示收缩,大于1.0表示放大
pivotX: 动画相对于物件的X坐标的开始位置
pivotY: 动画相对于物件的X坐标的开始位置  这两个坐标可以理解成是一个中心点,动画的中心点

从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 
fillAfter(布尔型)属性当设置为true,该动画转化在动画结束后被应用


代码调用布局动画:
<span style="font-size:14px;">// scale缩放动画
ImageView mImageView = (ImageView) findViewById(R.id.imageView);
// 加载动画
Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.scale);
// 执行动画
mImageView.startAnimation(mAnimation);</span>



2,渐变透明度动画,如果用代码定义动画需要使用的类:AlphaAnimation
[b]布局代码:[/b]
<span style="font-size:14px;">   <!-- 透明动画 -->
<alpha
android:duration="1000"
android:fromAlpha="1.0"
android:toAlpha="0.6" /></span>
说明:
[b]duration: 动画时长[/b]
[b]fromAlpha: 动画起始透明度 [/b]
[b]toAlpha: 动画结束透明度[/b]
1.0表示无透明,0.0完全透明


[b]代码调用如上一样,在此省略...[/b]


3,画面移动动画,如果用代码定义动画需要使用的类:TranslateAnimation
布局代码:
<span style="font-size:14px;">  <!-- 移动动画 -->
<translate
android:duration="1000"
android:fromXDelta="0"
android:fromYDelta="0"
android:repeatCount="1"
android:toXDelta="120"
android:toYDelta="120" /></span>
说明:
duration: 动画时长
[b]fromXDelta:动画起始X坐标[/b]
fromYDelta:  动画起始Y坐标
[b]toXDelta:  动画结束X坐标[/b]
[b]toYDelta:  动画结束Y坐标[/b]
[b]repeatCount: 动画重复次数 [/b]

代码调用如上一样,在此省略...




4,画面移动动画,如果用代码定义动画需要使用的类:
RotateAnimation

布局代码

<rotate
android:duration="1000"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="1"
/>


说明:

duration: 动画时长

fromDegress: 动画起始角度


toDegress: 动画结束角度

(负数fromDegrees——toDegrees正数:顺时针旋转)

(负数fromDegrees——toDegrees负数:逆时针旋转)

(正数fromDegrees——toDegrees正数:顺时针旋转)

(正数fromDegrees——toDegrees负数:逆时针旋转)  


pivotX:  动画相对于物件的X坐标

pivotY:  动画相对于物件的Y坐标

以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
repeatCount: 动画重复次数

代码调用如上一样,在此省略...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: