说明:Animation是所有tween动画的父类,所以动画所具有的属性由自生和父类的属性和
Animation的子类有:AlphaAnimation, RotateAnimation, ScaleAnimation, TranslateAnimation
Animation属性为:
android:duration=""持续的时间
android:interpolator=""动画插入器,定义一个动画的变化率(the rate of change)。这使得基本的动画效果(alpha, scale, translate, rotate)得以加速,减速,重复等
android:fillBefore=""当动画开始前,应用此动画变形
android:fillAfter=""当该动画结束后用此动画变形
android:fillEnabled="" 当设置为true时,fillAfter和fillBefroe将会都为true,,此时会忽略android:fillBefore 和 android:fillAfter两种属性
android:startOffset=""与下个动画的间隔
android:repeatCount=""重复次数
android:repeatMode=""重复模式
android:zAdjustment=""z轴变化
android:detachWallpaper=""
二.anim文件夹下定义tween动画
1.存放位置:res/anim/文件名.xml,这个文件可以被作为id引用,对应的类型是Animation
2.资源调用:in code:R.anim.文件名 in xml:@[包名:]anim/文件名
3.格式说明:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 指定一个interpolator,可以是系统自带的也可以是自己定义的 -->
android:interpolator="@[package:]anim/interpolator_resource"
<!-- 是否在子元素中使用指定的interpolator -->
android:shareInterpolator=["true" | "false"] >
<!-- 淡入淡出动画,相当于AlphaAnimation -->
<alpha
android:fromAlpha="float" ><!-- 开始的透明度 0.0----1.0 -->
android:toAlpha="float" /> <!-- 结束的透明度 -->
<!-- 缩放动画,相当于ScaleAnimation -->
<scale
android:fromXScale="float" <!-- 开始x缩放的倍数1.0不缩放 -->
android:fromYScale="float" <!-- 开始缩放的倍数1.0不缩放-->
android:pivotX="float" <!-- 相对于view的x坐标的x -->
android:pivotY="float" <!-- 同上 -->
android:toXScale="float" <!-- 结束时的x缩放倍数 -->
android:toYScale="float" /> <!-- 结束时的y缩放倍数 -->
<!-- 平移动画 -->
<translate
android:fromXDelta="float" <!-- 开始x -->
android:fromYDelta="float" <!--开始y -->
android:toXDelta="float"
android:toYDelta="float" />
<!--旋转动画 -->
<rotate
android:fromDegrees="float" <!--开始角度 -->
android:pivotX="float" <!-- 现对于view的x的x -->
android:pivotY="float" <!--同上 -->
android:toDegrees="float" /> <!-- 结束角度 -->
<!-- 包含另一组动画 -->
<set >
...
</set>
</alpha>
</set>
在代码中使用:
ImageView image = (ImageView) findViewById(R.id.image); Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); image.startAnimation(hyperspaceJump);
补充:1.可以通过实现接口的方式给动画设置事件监听:实现接口AnimationListener
设置事件监听:myAnimation.setAnimationLintener(this)
2.插入器的使用(interpolator)