最近在学Android的AnimationDrawable,简单的写一个动画的实现过程。

简单介绍

Animation代表一个动画,目前Android支持逐帧动画(就是所谓的老电影哪样一张一张放映出来)也支持补间动画(就是通过平移、变化计算出来的动画)。

代码片段

定义动画的XML文件应该放在/res/anim路径下,注意创建的XML类型是TweenAnimation类型的。下面首先定义一个XML文件:

<?xml version="1.0" encoding="utf-8"?>
<set >"http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="5000">
    <!-- 定义缩放动画 -->
    <scale android:fromXScale="1.0"
        android:toXScale="1.4"
        android:fromYScale="1.0"
        android:toYScale="1.4"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="true"
        android:duration="2000"/>
    <!-- 定义位移变化 -->
    <translate android:fromXDelta="10"
        android:toXDelta="130"
        android:fromYDelta="30"
        android:toYDelta="-80"
        android:duration="2000"/>
</set>

res资源文件定义好后开始撰写布局文件(图片资源请自行添加):

<RelativeLayout >"http://schemas.android.com/apk/res/android"
    >"http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="动画" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:src="@drawable/image01" />

</RelativeLayout>

接下来就是最重要的Java文件了:

package com.example.test;

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

public class MainActivity extends Activity {
    private Button bt;
    private ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt = (Button) findViewById(R.id.button1);
        iv = (ImageView) findViewById(R.id.imageView1);

        final Animation anim = AnimationUtils.loadAnimation(this, R.anim.my_anim);
        anim.setFillAfter(true);//设置动画完成后是否保持完成后的状态
        /*
         * 按钮的监听事件
         */
        bt.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                iv.startAnimation(anim);
            }
        });
    }
}

写到这里也就OK了,由于还不知道怎么录制小视频,效果图大家就自行脑补吧。

本文固定链接: http://www.js-code.com/android/android_57854.html