当前位置: 移动技术网 > IT编程>移动开发>Android > Android编程实现动画自动播放功能

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

冒险岛乌里卡,jsp教程pdf,李金羽近况

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

private imageview image;
private animationdrawable animdrawable = new animationdrawable();
@override
public 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();
}
@override
public void onwindowfocuschanged(boolean hasfocus) {
    super.onwindowfocuschanged(hasfocus);
    animdrawable.start();
}

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

所以

animationdrawable ad;
@override
public 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程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网