Android下实现帧动画效果代码
转自:http://blog.csdn.net/chrp99/
新建一个framebyframe.xml文件
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/an01" android:duration="1000" /> <item android:drawable="@drawable/an02" android:duration="1000" /> <item android:drawable="@drawable/an03" android:duration="2000" /> </animation-list> <!-- oneshot :是否只播放一遍动画 true 播放一遍 false 循环播放 默认就是false -->
下边 就是具体代码实现了:
public class SplashActivity extends Activity { private ImageView imageView; private AnimationDrawable animationDrawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 帧动画 imageView = (ImageView) findViewById(R.id.imageView1); // 第一种方式实现 动画 /*animationDrawable = (AnimationDrawable) getResources().getDrawable( R.anim.framebyframe); imageView.setBackgroundDrawable(animationDrawable);*/ // 第二种方式实现动画 imageView.setBackgroundResource(R.anim.framebyframe); animationDrawable = (AnimationDrawable) imageView.getBackground(); animationDrawable.start();//开始 // animationDrawable.setOneShot(false);是否循环播放 // animationDrawable.stop();停止播放 // animationDrawable.isRunning();//是否播放 // animationDrawable.getNumberOfFrames();//播放帧 // animationDrawable.getFrame(index); 返回制定索引的 Drawable对象 // animationDrawable.getDuration(i);停留的时间 //延迟三秒 跳转 new Handler() { public void handleMessage(android.os.Message msg) { if (msg.what == 1) { //声明意图对象 实现 跳转 Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); } }; }.sendEmptyMessageDelayed(1, 3000);//三秒 } /* @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { animationDrawable.start(); return true; } return super.onTouchEvent(event); } */ }