android2.2资源文件详解2--tween动画
说明: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)