Tween Animation学习

                                               Tween Animation学习 

src文件中

package sj.com;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class Zsj extends Activity {
  Animation myAnimation;
  ImageView imageview;
  /**Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;
  在XML文件中:
                      alpha       渐变透明度动画效果
                                       fromAlpha 属性为动画起始时透明度(0.0表示完全透明,1.0表示完全不透明,以上值取0.0-1.0之间的float数据类型的数字)
                                       toAlpha 属性为动画结束时透明度
 
                     scale       渐变尺寸伸缩动画效果
                                       fromXScale[float] ,fromYScale[float] 为动画起始时,X、Y坐标上的伸缩尺寸 (0.0表示收缩到没有,1.0表示正常无伸缩,值小于1.0表示收缩,值大于1.0表示放大)
                                       toXScale [float],toYScale[float] 为动画结束时,X、Y坐标上的伸缩尺寸 
                                       pivotX[float],pivotY[float] 为动画相对于物件的X、Y坐标的开始位置(从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置 )
 
                    translate   画面转换位置移动动画效果
                                       fromXDelta,toXDelta 为动画、结束起始时 X坐标上的位置  
                                       fromYDelta,toYDelta 为动画、结束起始时 Y坐标上的位置

                    rotate      画面转移旋转动画效果
                                       fromDegrees 为动画起始时物件的角度. 当角度为负数——表示逆时针旋转
                                                                                                               当角度为正数——表示顺时针旋转
                                      toDegrees 属性为动画结束时物件旋转的角度. 可以大于360度 
                                      pivotX,pivotY 为动画相对于物件的X、Y坐标的开始位 说明:以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

    Tween Animation共同的节点属性:
                                       Duration[long]   属性为动画持续时间     时间以毫秒为单位 
                                       fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用 
                                       fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用
                                       interpolator 指定一个动画的插入器 .常见的插入器

                                                          accelerate_decelerate_interpolator(加速-减速 动画插入器)
                                                          accelerate_interpolator(加速-动画插入器)
                                                          decelerate_interpolator(减速- 动画插入器)
                                                          及其他特定的动画效果 
                                                           Interpolator 定义了动画的变化速度,可以实现匀速、正加速、负加速、无规则变加速等。
                                                           Interpolator 是基类,封装了所有 Interpolator 的共同方法,它只有一个方法, 即 getInterpolation (float input)。
              
                                                          Android 提供了几个 Interpolator 子类,实现了不同的速度曲线,如下:
                                                         AccelerateDecelerateInterpolator 动画开始和结束的地方速率改变比较慢,在中间的时候加速
                                                         AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
                                                         CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
                                                         DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速
                                                         LinearInterpolator 在动画的以均匀的速率改变

                                         repeatCount[int] 动画的重复次数  
                                         repeatMode[int] 1:重新开始 , 2:返回
                                         startOffset[long] 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
                                         zAdjustment[int] 定义动画的Z Order的改变.  0:保持Z Order不变
                                                                                                                       1:保持在最上层
                                                                                                                        -1:保持在最下层 
      Tween Animation如何使用
                                       使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
                                        例如:
                                        Animation myAnimation = AnimationUtils.loadAnimation(this,R.anim.myanim);
                                        (注意:此处AnimationUtils直接调用了自身的静态方法:public static Animation loadAnimation (Context context, int id))
                                        ImageView imageview = (ImageView)this.findViewById(R.id.myImageView);
                                        (注意:方法public View findViewById (int id),此方法得到一个View对象并详细转型为ImageViewd对象)
                                         imgeview.startAnimation(myAnimation)
                                         (注意:方法public void startAnimation (Animation animation)开启动画,此方法为View类中的方法,ImageView为View的子类所以可以用ImageView对象调用此方法)

 */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myAnimation= AnimationUtils.loadAnimation(this,R.anim.myanim);
        imageview = (ImageView)this.findViewById(R.id.myImageView);
        imageview.startAnimation(myAnimation);
    }
}

res main.xml文件中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ImagView 
 android:id="@+id/imagview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:src = "@drawable/img"
    />
</LinearLayout>

res anim myanim.xml文件中

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
 android:fromAlpha="0.1"
 android:toAlpha="1.0"
 android:duration="2000"
 />
 <scale
  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:repeatCount="2"
  android:startOffset="5000"
  android:fillAfter="true"
  android:duration="3000"
 />
 <translate
  android:fromXDelta="30"
  android:toXDelta="0"
  android:fromYDelta="30"
  android:toYDelta="50" 
  android:duration="3000"
 />
 <rotate
  android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  android:fromDegrees="0"
  android:toDegrees="+350"
  android:pivotX="50%"
  android:pivotY="50%"
  android:duration="3000"
 />
 
</set>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值