android 动画 Tweened Animation 之 TranslateAnimation

来源:互联网 发布:vocaloid后期软件 编辑:程序博客网 时间:2024/04/29 03:28

android 系统提供了四种Tweened animation (补间动画):TranslateAnimation 、 AlphaAnimation 、 RotateAnimation 、 ScaleAnimation 。

 TranslateAnimation:  移动 , 指示位置坐标的变化。

  AlphaAnimation: 渐变 ,指示对象明暗(模糊,清晰)。

 RotateAnimation: 旋转 , 基于某个条件做转动,eg:围绕view中心做逆时针旋转。

 ScaleAnimation: 大小,改变对象的大小。

TranslateAnimation(移动补间动画)

TranslateAnimation 控制对象位置的动画类,用于控制View对象的位置继承自Animation,结构如下:


TranslateAnimation 中关键是定义View对象的起始点(fromX , fromY)和终止点( toX , toY)和动画持续时间  duration 。

下面结合实例,简单讲解一下使用移动动画类(TranslateAnimation)的步骤:

1、创建android工程神马的就不说了,在res\drawable目录下准备一张名为ting_frame_0的图片。在res\anim文件夹下创建文件 translate_anim.xml , 其内容如下:

<?xml version="1.0" encoding="utf-8"?><translate  xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXDelta="0"    android:toXDelta="500"    android:fromYDelta="0"    android:toYDelta="620"    android:duration="200"    android:repeatCount="-1"    android:repeatMode="reverse"></translate>
2、创建一个layout文件 translate_anim_layout.xml ,其内容如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ImageView        android:id="@+id/translate_image"        android:layout_width="80dp"        android:layout_height="wrap_content"        android:src="@drawable/ting_frame_0"        android:contentDescription="@string/app_name"        android:adjustViewBounds="true"        android:scaleType="centerInside" /></LinearLayout>
3、创建用于显示动画的activity 命名为 TranslateAnimActivity.java (该名可以随便取),内容如下:
import android.app.Activity;import android.os.Bundle;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;public class TranslateAnimActivity extends Activity {    Animation mTranslate;    ImageView mTransImg;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.translate_anim_layout);        init();        mTranslate = (Animation) AnimationUtils.loadAnimation(this,                R.anim.translate_anim);    }    void init() {        mTransImg = (ImageView) findViewById(R.id.translate_image);    }    @Override    protected void onPause() {        super.onPause();        mTransImg.clearAnimation();    }    @Override    protected void onResume() {        super.onResume();        mTransImg.startAnimation(mTranslate);    }}
其中播放动画最好的做法是放到onWindowFocusChanged方法中。

加载定义在xml中的动画  AnimationUtils.loadAnimation(this,   R.anim.translate_anim);
对View播放动画: mTransImg.startAnimation(mTranslate);
由于该文的实例是基于上文android动画——Frame by Frame Animation  创建的, 若对文中内容存在疑问的请留言,谢谢!















原创粉丝点击