//主Activity如下 package cn.com; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; //Frame Animation步骤 //1 在res下建立anim文件夹 //2 在anim下建立frameanim.xml文件 // 在此xml文件中定义了动画所使用的图片 // 注意: // (1)Frame Animation的xml文件中根节点是<animation-list> // (2)android:oneshot属性定义了是否重复动画 // (3)然后在每个<item>里面定义每一帧所展示的图片,以及图片持续的时间 //3 在主Activity里面使用一个ImageView来展示动画. // 注意:设置android:src="@anim/frameanim"指明要展示的动画 //4 若动画只播放一次,那么在android:oneshot="true" // 在frameanim.xml中最后一个<item>定义为 // <item android:drawable="@android:id/empty" android:duration="180" /> // 这样设置后动画播放完毕时,不会停留在最后一张图片上 // 核心点: //1 Android中使用AnimationDrawable类来定义和使用帧动画 //2 和动画有关的方法不能在Activity的onCreate()方法中调用 // 因为此时AnimationDrawable还未完全和ImageView绑定 // // public class TestFrameAnimActivity extends Activity { private Button animButton; private ImageView animImageView; private AnimationDrawable animationDrawable; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); animButton=(Button) findViewById(R.id.animButton); animImageView=(ImageView) findViewById(R.id.animImageView); //创建AnimationDrawable对象!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! animationDrawable=(AnimationDrawable) animImageView.getDrawable(); animButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { controlAnim(); } }); } private void controlAnim(){//控制动画 if(animationDrawable.isRunning()){ animationDrawable.stop(); animButton.setText("开始动画"); }else{ animationDrawable.stop(); animationDrawable.start(); animButton.setText("停止动画"); } } } //main.xml如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/animButton" android:layout_width="70dip" android:layout_height="70dip" android:text="start" /> <ImageView android:id="@+id/animImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:src="@anim/frameanim" /> </LinearLayout> //frameanim.xml如下: <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/a" android:duration="180" /> <item android:drawable="@drawable/b" android:duration="180" /> <item android:drawable="@drawable/c" android:duration="180" /> <item android:drawable="@drawable/d" android:duration="180" /> <item android:drawable="@drawable/e" android:duration="180" /> <item android:drawable="@drawable/f" android:duration="180" /> <item android:drawable="@drawable/g" android:duration="180" /> <item android:drawable="@drawable/h" android:duration="180" /> </animation-list>
时间: 2024-10-28 14:08:46