AnimationDrawable在2.2系统上开始动画后无法显示的问题
来源:互联网 发布:德雷蒙德格林体测数据 编辑:程序博客网 时间:2024/06/05 13:57
今天在尝试使用AnimationDrawable进行Frame Animation的效果时,发现了一个问题。
先看实际代码
@Overridepublic void onWindowFocusChanged(boolean hasFocus) {//注3mAnim = InitFrame();//iv_BreathingMic.setBackgroundDrawable(mAnim);//注1//((AnimationDrawable)iv_BreathingMic.getBackground()).start();//2.2系统上以下方法Drawable的元素不会出现iv_BreathingMic.setImageDrawable(mAnim);//注2((AnimationDrawable)iv_BreathingMic.getDrawable()).start();super.onWindowFocusChanged(hasFocus);}private AnimationDrawable InitFrame(){AnimationDrawable frame = new AnimationDrawable();for(int i = 0; i < FRAME_COUNT; i++) {String name = String.format("breathing_mic_%05d", i); int id = getResources().getIdentifier(name, "drawable", getPackageName()); Drawable drawable = getResources().getDrawable(id); frame.addFrame(drawable, T);}for(int i = FRAME_COUNT - 2; i > 0; i--) {String name = String.format("breathing_mic_%05d", i); int id = getResources().getIdentifier(name, "drawable", getPackageName()); Drawable drawable = getResources().getDrawable(id); frame.addFrame(drawable, T);}frame.setOneShot(false);return frame;}
这个问题出自于注1和注2两个实现方法,如果当我使用注2的方法展示AnimationDrawable时在我的一个2.2系统的手机上无法显示这个ImageView元素。而如果使用注1的方法,在2.2和4.0的手机上都能显示。
问题原因:因为注2的方法没有设置ImageView的背景,而我的ImageView的layoutParams设置的宽高都是wrap_centent所以导致无法显示。如果我使用注2 的方法,并且设置一张图片作为ImageView的setBackgroundDrawable那么就能显示了,并且ImageView的大小又background的大小来决定。这一点应该是不同版本的系统的内部实现不同导致的(比如说可能4.0系统上ImageView有一个默认的background)。
建议:如注3所示,建议大家不要在oncreate中开始AnimationDrawable。需要在更后面的生命周期调用,或者用handle发延迟消息来开启,或者如果可以的话,用界面事件驱动吧。
希望对大家有帮助
- AnimationDrawable在2.2系统上开始动画后无法显示的问题
- 解决使用AnimationDrawable无法播放动画的问题
- 解决使用AnimationDrawable无法播放动画的问题
- 解决使用AnimationDrawable无法播放动画的问题(转)
- 解决使用AnimationDrawable无法播放动画的问题
- 解决AnimationDrawable动画不运行的问题
- U盘在MAC系统下格式化后在windows上显示设备,无法正常使用
- 解决SVN在MyEclipse安装后无法显示的问题
- apk签名后无法在手机上安装的问题
- WIN7,WIN8系统下将软件图标锁定在任务栏上,卸载软件后图标无法删除问题的解决方法
- 解决Activity onCreate()时AnimationDrawable动画不运行的问题
- QT发布后在别的电脑上无法显示图标问题
- android 广播在4.0+系统上无法接受的问题
- 解决Android调用系统相机拍照后相片无法在相册中显示问题
- 在Ghost系统上安装Agent不显示的问题
- ubuntu 9.10 安装完后,开始使用的很好,一段时间后无法进入系统,在boot阶段被block
- chm打开后无法显示的问题
- iOS动画animateWithDuration:animations:无法显示动画的问题
- Linux Platform Device and Driver的注册过程解析
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-8摄像头功能调试支持
- Archie osgEarth Step By Step ⑤OsgEarth开发指南——使用osgearth API编程动态建立地图
- ORA-12641 错误的一个解决办法
- VC++ 聊天框,仿QQ接收图片
- AnimationDrawable在2.2系统上开始动画后无法显示的问题
- android 多媒体和相机详解四 .
- 随机启动脚本修改Magento数据表core_config_data
- Linux中应用程序运行库错误问题的一种解决方法
- android 多媒体和相机详解五 .
- Disclaimer
- extjs4 chart 坐标轴都为Numberic时,坐标不正确问题
- C#中Split用法
- 如何在EditText中嵌入一个Button