最近在学Android的AnimationDrawable,简单的写一个动画的实现过程。
简单介绍
Animation代表一个动画,目前Android支持逐帧动画(就是所谓的老电影哪样一张一张放映出来)也支持补间动画(就是通过平移、变化计算出来的动画)。
代码片段
定义动画的XML文件应该放在/res/anim路径下,注意创建的XML类型是TweenAnimation类型的。下面首先定义一个XML文件:
android:interpolator="@android:anim/linear_interpolator"
android:duration="5000">
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true"
android:duration="2000"/>
android:toXDelta="130"
android:fromYDelta="30"
android:toYDelta="-80"
android:duration="2000"/>
res资源文件定义好后开始撰写布局文件(图片资源请自行添加):
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="动画" />
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" />
接下来就是最重要的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了,由于还不知道怎么录制小视频,效果图大家就自行脑补吧。