解决使用AnimationDrawable无法播放动画的问题(转)
2013-10-04 16:40
489 查看
这个AnimationDrawable.start不能直接写在onClick,onStart,onResume里面,是无效的,无法启动动画,只能写在比如事件监听当中。
第一种方式启动帧动画:(在Activity启动时会自动运行动画)
第二种方式启动动画:(在Activity启动时会自动运行动画)
第三种方式启动动画:(在Activity启动时会自动运行动画)
这个已经测试,肯定管用
第四种方式启动动画:(在Activity启动时会自动运行动画)
第一种方式启动帧动画:(在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); }
相关文章推荐
- Drawable和Bitmap转换
- 浅谈Android五大布局(一)——LinearLayout、FrameLayout和AbsoulteLayout
- Android的Dialog开发和运用
- 安卓读取SD卡路径
- JS教程:window.location使用方法的区别介绍
- 利用LayerDrawable一次加载多张图片和改变SeekBar的外观
- 利用LayerDrawable一次加载多张图片和改变SeekBar的外观
- Git 学习
- 大规模超文本网络搜索引擎解析 [ The Anatomy of a Large-Scale Hypertextual Web Search Engine ]
- EOF \n \0 NULL 之间的区别
- Light, more light UVA10110
- 数据库连接字符串大全
- Shader Language是什么
- js中单引号与双引号冲突问题解决方法
- SpringMVC redirect 重定向 中文乱码
- TCP/IP传输层
- 看完com本质论第一章
- LeetCode-Flatten Binary Tree to Linked List
- (一)线性结构之ArrayList的实现
- 基础正规表示法特殊字符意义