• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
lamber
博客园    首页    新随笔       管理    订阅  订阅

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

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

http://www.eoeandroid.com/blog-468046-657.html

帧动画:

第一种方式启动帧动画:(在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);

    }

这个ad.start不能直接写在onClick,onStart,onResume里面,是无效的,无法启动动画,只能写在比如事件监听当中

想要获得成功,首先要自己相信自己,再者要赢得周围朋友的信任!
posted @ 2012-01-31 21:53  android5k  阅读(2130)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3