技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Android开发 --> Android动画背景图自动播放的实现

Android动画背景图自动播放的实现

浏览:2317次  出处信息

   我们在开发android应用的时候,经常会遇到类似从网络加载大图,在加载的过程中,在图片要显示的ImageView位置,先显示一个转圈的loading动画图,给用户的体验会更好一些,要实现这个动画图很简单,使用在/res/anim中定义xml的方式,通常使用…. 来实现。

   不过大多数朋友都会遇到的问题是,动画是做好了,但是界面在加载的时候,动画并不会自动播放,还得通过屏幕点击等事件来触发,这就失去了意义了,实际上,android的动画AnimationDrawable 组件里面有个start()方法用于启动动画播放,但是这个方法不能直接写在onClick,onStart,onResume里面,写进去也是无效的,无法启动动画,只能写在比如事件监听当中,于是我们可以使用点小技巧来实现自动播放

   目前我知道的有三种方法:

ImageView imageView = (ImageView)findViewById(R.id.xxx);

   方法一:使用Runnalbe()来加载

imageView.setBackgroundResource(R.anim.xxxxx);


   final AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground();

   imageView.post(new Runnable() {

     @Override

         public void run()  {

             animationDrawable.start();

         }

   });

   方法二:使用AsyncTask异步加载启动

imageView.setBackgroundResource(R.anim.xxxxx);


   AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();

   RunAnim runAnim=new RunAnim();

   runAnim.execute(\"\");

   class RunAnim extends AsyncTask {

         @Override

         protected String doInBackground(String... params) {

             if (!animationDrawable.isRunning()) {

                 animationDrawable.stop();

                 animationDrawable.start();

             }

             return \"\";

         }

   }

   方法三:通过添加addOnPreDrawListener来自动加载

imageView.setBackgroundResource(R.anim.xxxxx);


   AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();

   imageView.getViewTreeObserver().addOnPreDrawListener(preDrawListener);

   OnPreDrawListener preDrawListener = new OnPreDrawListener(){

     @Override

     public boolean onPreDraw() {

         animationDrawable.start();

         return true; //必须要有这个true返回

     }

   };

   以上三种方法经过测试没有问题,另外网上有一些说使用重写Activity的onWindowFocusChanged()方法来实现,但是还是有不足,得改变焦点才能触发,虽然理论可以自动实现改变焦点,感觉还是不甚可取。

建议继续学习:

  1. android 开发入门    (阅读:15457)
  2. Android 连接SSID隐藏网络以及 LEAP 认证的方法    (阅读:7780)
  3. 手机产品设计方向    (阅读:6446)
  4. 实时监控Android设备网络封包    (阅读:5115)
  5. 基于 PhoneGap 与 Java 开发的 Android 应用的性能对比    (阅读:5074)
  6. Android用户界面设计:表格布局    (阅读:4873)
  7. Eclipse开发Android应用程序入门:重装上阵    (阅读:4884)
  8. Android 4.0平台交互简析    (阅读:4870)
  9. Windows下使用VMware安装Android    (阅读:4458)
  10. Eclipse开发Android应用程序入门    (阅读:4310)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1