Android学习03自定义动画的播放

来源:互联网 发布:网络教育会计专科 编辑:程序博客网 时间:2024/06/05 20:28

Android中主要有两种动画模式,一种是tweened animation(渐变动画),即通过对场景里的对象不断做图像变换产生动画效果;

另外一种是frame by frame(帧动画),即按照顺序播放事先配置好的动画帧

   这里是tweened animation的例子,帧动画以前在J2ME也常用就不做分析

   渐变动画有四种类型,alpha(透明度),scale(尺度伸缩),translate(位置变换)和rotate(图形旋转)。

 

准备一张图片放入资源文件夹里面

在res目录新建anim文件夹,并在该文件夹新建animation.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="8000"
  />
  <!-- 透明度的变换 -->
 
  <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:fillAfter="false"
 android:duration="10000"
  />
  <!-- 尺寸的变化 -->
 
  <translate
 android:fromXDelta="30"
 android:toXDelta="0"
 android:fromYDelta="30"
 android:toYDelta="50"
 android:duration="10000"
  />
  <!-- 位置的变化 -->
 
  <rotate
 android:interpolator="@android:anim/accelerate_decelerate_interpolator"
 android:fromDegrees="0"
 android:toDegrees="+350"
 android:pivotX="50%"
 android:pivotY="50%"
 android:duration="10000"
  />
  <!-- 旋转变化s -->
 
</set>

 

布局文件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"
    >
<ImageView
    android:id="@+id/myImageView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/luoli"
    />
</LinearLayout>

新建Activity类代码如下:

import android.app.Activity; //引入Activity类
import android.os.Bundle;//引入Bundle类
import android.view.animation.*;//引入Animation类
import android.widget.ImageView;//引入ImageView类

public class Animation extends Activity {
 android.view.animation.Animation animation;//动画的引用
 ImageView myImageView;//ImageView的引用
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {//重写的onCreate回调方法
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);//设置当前显示的View
        animation= AnimationUtils.loadAnimation(this,R.anim.animation);//加载动画
        myImageView = (ImageView) this.findViewById(R.id.myImageView);//得到ImageView的引用
        myImageView.startAnimation(animation);//启动动画
    } 
}

 

 

执行效果如图:

 

 

 

 

原创粉丝点击