帧动画自启动大概有4种:
第一种方式启动帧动画:(在Activity启动时会自动运行动画)
AnimationDrawable ad; ImageView iv = (ImageView) findViewById(R.id.animation_view); iv.setBackgroundResource(R.drawable.animation); ad = (AnimationDrawable) iv.getBackground(); iv.getViewTreeObserver().addOnPreDrawListener(opdl);
//当一个视图树将要绘制时产生事件,可以添加一个其事件处理函数 OnPreDrawListener opdl=new OnPreDrawListener(){ @Override public boolean onPreDraw() { ad.start(); return true; //注意此行返回的值 } };
第二种方式启动动画:(在Activity启动时会自动运行动画)
ImageView image = (ImageView) findViewById(R.id.animation_view); image.setBackgroundResource(R.anim.oldsheep_wait); animationDrawable = (AnimationDrawable) image.getBackground(); RunAnim runAnim=new RunAnim(); runAnim.execute(""); ------------------------------------------------------------ class RunAnim extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { if (!animationDrawable.isRunning()) { animationDrawable.stop(); animationDrawable.start(); } return ""; } }
第三种方式启动动画:(在Activity启动时会自动运行动画)
ImageView image = (ImageView) findViewById(R.id.animation_view); image.setBackgroundResource(R.anim.oldsheep_wait); animationDrawable = (AnimationDrawable) image.getBackground(); image.post(new Runnable() { @Override public void run() { animationDrawable.start(); } });
第四种方式启动动画:(在Activity启动时会自动运行动画)
ImageView image = (ImageView) findViewById(R.id.animation_view); image.setBackgroundResource(R.anim.oldsheep_wait); animationDrawable = (AnimationDrawable) image.getBackground(); ----------------------------------------------------------- @Override public void onWindowFocusChanged(boolean hasFocus) { animationDrawable.start(); super.onWindowFocusChanged(hasFocus); }
要实现动画的自启动直接写在onCreate,onStart,onResume里面,单纯的 .start()一句启动是无效的,必须有事件启动,写在比如事件监听当中 。
声明 :此文章为mark一下(略改),呵呵,转载自: http://www611.iteye.com/blog/1217096
Android中帧动画在Activity启动时自动运行的几种方式
最新推荐文章于 2024-09-13 17:57:30 发布