首页 > 系统 > Android > 正文

Android编程实现动画自动播放功能

2019-12-12 02:30:40
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程实现动画自动播放功能。分享给大家供大家参考,具体如下:

private ImageView image;private AnimationDrawable animDrawable = new AnimationDrawable();@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.table_title);    image = (ImageView) this.findViewById(R.id.scrollView);    //代码实现//   for(int i=0; i<16; i++){//     int id = getResources().getIdentifier("load_"+(i+1), "drawable", getPackageName());//     animDrawable.addFrame(getResources().getDrawable(id), 50);//   }//   animDrawable.setOneShot(false);//   image.setBackgroundDrawable(animDrawable);    animDrawable = (AnimationDrawable) image.getBackground();}@Overridepublic void onWindowFocusChanged(boolean hasFocus) {    super.onWindowFocusChanged(hasFocus);    animDrawable.start();}

在onCreate中执行 animDrawale.start() 动画并不执行。 搞不懂啊
另外以上代码测试过有缺陷。 例如在TabActivity中 onWindowFocusChanged只会执行一次

所以

AnimationDrawable ad;@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    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() {        if(ad.isRunning() == false){        ad.start();        }        return true; //注意必须返回true    }};

此方法试过 确实可行。 很好。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发动画技巧汇总》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android资源操作技巧汇总》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表