您的位置:首页 > 移动开发 > Android开发

Android中帧动画在Activity启动时自动运行的几种方式

2012-11-02 16:22 531 查看
帧动画自启动大概有4种: 

第一种方式启动帧动画:(在Activity启动时会自动运行动画) 

[java] viewplaincopy

AnimationDrawable ad;   

  

ImageView iv = (ImageView) findViewById(R.id.animation_view);   

  

iv.setBackgroundResource(R.drawable.animation);   

  

ad = (AnimationDrawable) iv.getBackground();   

  

iv.getViewTreeObserver().addOnPreDrawListener(opdl);  

[java] viewplaincopy

 //当一个视图树将要绘制时产生事件,可以添加一个其事件处理函数   

OnPreDrawListener opdl=new OnPreDrawListener(){   

@Override   

public boolean onPreDraw() {   

ad.start();   

return true; //注意此行返回的值   

  

}   

};   

 第二种方式启动动画:(在Activity启动时会自动运行动画)

[java] viewplaincopy

 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启动时会自动运行动画) 

[java] viewplaincopy

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启动时会自动运行动画) 

[java] viewplaincopy

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()一句启动是无效的,必须有事件启动,写在比如事件监听当中 。

转载自:http://blog.sina.com.cn/s/blog_8f5097be010127j2.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: